# 初始化springboot权限框架 **Repository Path**: wywteach/init-parent ## Basic Information - **Project Name**: 初始化springboot权限框架 - **Description**: 初始化springboot权限框架 动态路由,用户 权限 角色 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-11-26 - **Last Updated**: 2023-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBoot2+SpringSecurity整合JWT,前后端分离的API权限认证框架搭建手册 >使用 JWT 做权限验证,相比传统Session的优点是,Session 需要占用大量服务器内存,并且在多服务器时就会涉及到Session共享问题,对手机等移动端访问时就比较麻烦,因此前后端分离的项目很多都用JWT来做。 - JWT无需存储在服务器(不使用Session/Cookie),不占用服务器资源(也就是Stateless无状态的),也就不存在多服务器共享Session的问题 - 使用简单,用户在登录成功拿到 Token后,一般访问需要权限的请求时,在Header附上Token即可。 ### validation java 基本用途 ```text @NotNull:主要用在基本数据类型上(Int,Integer,Double) 举例: @NotNull(message = “年龄不能为空”) private Integer age; @NotBlank:主要用在String字符串上面(String) 举例: @NotBlank(message = “名字不能为空”) private String name; @NotEmpty; 加了@NotEmpty注解的String类 ,Collection集合,Map ,数组,这些是不能为null或者长度为0的;(String ,Collection,Map的isEmpty()方法) ``` ## #断言方法说明 >单元测试中,常用的断言方法介绍: ```text Assert.AreEqual() 测试指定的值是否相等,如果相等,则测试通过; Assert.Inconclusive() 表示一个未验证的测试; Assert.IsTrue() 测试指定的条件是否为True,如果为True,则测试通过; Assert.IsFalse() 测试指定的条件是否为False,如果为False,则测试通过; Assert.IsNull() 测试指定的对象是否为空引用,如果为空,则测试通过; Assert.IsNotNull() 测试指定的对象是否为非空,如果不为空,则测试通过; ``` ### mysql >设置mysql 从 某处开始自增 ```sql alter table sys_menu AUTO_INCREMENT 1; ``` ### lombok-@EqualsAndHashCode(callSuper=true) ```text 通过官方文档,可以得知,当使用@Data注解时,则有了@EqualsAndHashCode注解,那么就会在此类中存在equals(Object other) 和 hashCode()方法,且不会使用父类的属性,这就导致了可能的问题。 比如,有多个类有相同的部分属性,把它们定义到父类中,恰好id(数据库主键)也在父类中,那么就会存在部分对象在比较时,它们并不相等,却因为lombok自动生成的equals(Object other) 和 hashCode()方法判定为相等,从而导致出错。 ``` ### lombok-@Accessors(fluent=true) ```text @Accessors 注解用来配置lombok如何产生和显示getters和setters的方法。 ``` ```text .sh 运行方式 确保用户对文件有读写及执行权限 chmod a+x start.sh ``` https://blog.csdn.net/li3455277925/article/details/108352634 ```text MySql数据库导入sql错误 Unknown collation: 'utf8mb4_0900_ai_ci' 错误原因:高版本数据库(8.0)转存sql文件 并导入低版本数据库(5.7) 解决办法: 方案一:升级mysql至高版本 方案二:将需要导入的sql文件,把其中的 utf8mb4_0900_ai_ci全部替换为utf8_general_ci utf8mb4替换为utf8 重新执行sql文件 ``` ### Maven项目报错 ```text SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 根据报错提示,我们可以知道出错的原因是“加载类文件org.slf4j.impl.StaticLoggerBinder时失败”,而出错的地方主要是在于slf4j的jar包 报错详情:https://blog.csdn.net/weixin_39548940/article/details/100015174 在Maven工程的pom文件中,新增一个上述的包文件之一的依赖配置,项目就可以正常编译运行了。 org.slf4j slf4j-nop 1.7.2 ```