
SpringBoot
SpringBoot相关总结
@逾越
记录日常学习实验
展开
-
Java SPI
SPI:全称是Service Provider Interface,全称是服务提供者接口它是从Java 6开始引入的,是一种基于ClassLoader来发现并加载服务的机制。ServiceLoader加载和发现Service Provider,而Service Provider是具体实现了Service接口我们拿JDBC举例:JDBC的流程:有了SPI,程序员不用在更换驱动名,只需要引入相应的JAR包即可;规范的配置文件:Service Provider类必须具备无参的默认构造方法:保证能加载到配置文件原创 2022-06-04 13:43:53 · 12630 阅读 · 0 评论 -
Java SLF4J学习总结
问题:当java程序使用任何一种日志框架,就要写不同的接入代码。当你修改日志框架你就需要更改代码,很麻烦,而且多种日志框架共存(第三方服务的日志),将维护多套日志配置文件。所以使用门面日志框架是很有必要的。解决:门面日志框架是抽象的API,它是利用了设计模式中的适配器模式Java应用程序和第三方服务均使用统一的门面日志框架,然后使用是适配层将门面日志框架和底层日志框架绑定,使用的是统一日志配置文件流程:使用:导入pom结合LombokSpringboot中集成SLF4J,添加Lombok,就原创 2022-06-01 16:57:29 · 12803 阅读 · 0 评论 -
SSO单点登录简单实现
通过cookie来实现单点登录1.单点登录的流程cookie是用来在客户端存储数据的工具、在其中一个子系统登录,跳转到登录系统,登陆系统登陆完成,完成登录后会向发起登录的子系统写入一个cookie,保存用于认证用户是否登录的信息(token),其他子系统向服务器发起请求的时候,携带这个cookie完成登录。cookie的域要是所有子系统相同的域,这样所有子系统才能访问到这个cookie。2.单点登录流程图2.单点登录的编码(部分核心代码)代码链接:https://gitee.com/yueh原创 2022-03-27 09:36:31 · 13343 阅读 · 2 评论 -
解决springboot跨域问题No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
文章目录1.问题描述2.问题产生3.解决方案1. 在WebMvcConfig添加(推荐使用)2.直接采用SpringBoot的注解@CrossOrigin1.Controller层在需要跨域的类或者方法上加上该注解即可。2.spring注解@CrossOrigin不起作用的原因1.问题描述前端向后台发送请求发现报错:报错: Access to XMLHttpRequest at ‘http://localhost:8082/doLogin’ from origin ‘http://localhost原创 2021-12-31 21:00:31 · 9395 阅读 · 1 评论 -
解决短信验证码问题
目录1.使用前需要将网站备案2.短信工具类3.其中有些位置需要自己填写4.测试1.使用前需要将网站备案2.短信工具类1.使用前添加 Maven 依赖项<dependency> <groupId>com.tencentcloudapi</groupId> <artifactId>tencentcloud-sdk-java</artifactId> <version>3.1.270</versio原创 2021-11-26 21:09:20 · 4180 阅读 · 0 评论 -
解决JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String
在项目中我们会使用新的时间类LocalDateTime问题:在使用Postman测试Spring Boot项目接口时,接口返回JSON parse error: Cannot deserialize value of type java.time.LocalDateTime from String错误解决办法:需要在你使用LocalDateTime的属性加上@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm原创 2021-11-25 21:28:51 · 11656 阅读 · 2 评论 -
SpringBoot——JSR303数据校验
1.JSR303数据校验Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。@Component //注册bean@ConfigurationProperties(prefix = "person")@Validated //数据校验public class Person { @Email(message="邮箱格式错误") //name必须是邮箱格式 private String email; @N原创 2021-10-23 20:42:58 · 3876 阅读 · 0 评论 -
SpringBoot——HandlerInterceptor(登录拦截器)
1.建立LoginInterceptor实现接口HandlerInterceptor@Slf4j // => logpublic class LoginInterceptor implements HandlerInterceptor { @Autowired @Qualifier("userServiceImpl") private UserService userService; @Override public boolean preHandle原创 2021-10-23 18:16:04 · 5761 阅读 · 0 评论 -
SpringBoot——JWTtoken
1.JWTJSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。2.优点1.无状态2.有效避免了CSRF 攻击(跨站请求伪造,属于网络攻击领域范围)3.适合移动端应用4.单点登录友好(SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。)@Slf4jpublic class JwtUtil { //过期时原创 2021-10-23 17:55:08 · 3903 阅读 · 0 评论 -
回显菜单树(后端)
实体类,含parentId,这个的 Listchildren上面加 @TableField(exist = false)注解是由于表中没有此字段。@Data@AllArgsConstructor@NoArgsConstructorpublic class Menu { Long id; Long parentId; String name; String url; String perms ; Integer type ; S原创 2021-10-21 14:50:53 · 3946 阅读 · 0 评论 -
如何解决mybatis-plus主键id太长
文章目录1.问题2.解决方式1方式23.数据库修改1.问题利用mybatis插入数后。生成一长串数字。Java中的Long类型。与JS中的数值类型不进行匹配。导致js会改变2.解决方式1@TableId(type = IdType.AUTO) 在实体类id加注解@Data@AllArgsConstructor@NoArgsConstructorpublic class UserBlog { @TableId(type = IdType.AUTO) privat原创 2021-10-14 21:02:14 · 6604 阅读 · 1 评论 -
Swagger接口文档使用
文章目录1.Swagger2.Swagger使用1.添加依赖2.application.yml配置swagger2.建立实体类swaggerProperties3.建立配置类SwaggerConfig4.需要在WebMvcConfig配置类中设置不拦截3.Swagger注解的使用4.Swagger测试1.SwaggerAPI 自动生成同步的在线文档提供 Web 页面在线测试 API2.Swagger使用1.添加依赖<!-- https://mvnrepository.com/artif原创 2021-10-14 20:47:29 · 4237 阅读 · 0 评论 -
如何使用Mybatis Plus
文章目录1.Mybatis Plus简介2.Mybatis Plus使用1.添加依赖2.配置application.yml文件3.添加分页插件 MybatisPlusConfig4. mapper层继承BaseMapper< T >5. service层继承 IService< T >6. serviceImp层继承 ServiceImpl1.Mybatis Plus简介-MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (open原创 2021-10-14 20:19:09 · 4114 阅读 · 0 评论