通过数据表映射生成实体类
python3 gentity gs_auth -sa
执行前记得修改 .json
文件内的配置信息
全局异常捕获
@RestControllerAdvice // 捕获全局异常,可以全局捕获spring mvc抛的异常
// https://www.jianshu.com/p/47aeeba6414c
// 作用是用来捕获指定的异常
// 通过这一波操作,我们的controller中就不需要再去写大量的try-catch了
Swagger
/**
* @Api:修饰整个类,描述Controller的作用
* @ApiOperation:描述一个类的一个方法,或者说一个接口
* @ApiParam:单个参数描述
* @ApiModel:用对象来接收参数
* @ApiModelProperty: 对象内的单个属性解释
* @ApiImplicitParam:用在请求的方法上,表示一组参数说明
* @ApiProperty:用对象接收参数时,描述对象的一个字段
* @ApiImplicitParams: 用在请求的方法上,表示多组参数说明
示例:
@Api(tags = "用户相关接口") 解释控制器作用
@ApiOperation("用户分页") 解释方法作用
@ApiParam("用户名") 常用在@PathVariable
@ApiModel("登录请求DTO") 解释实体
@ApiModelProperty(value = "当前页,从0开始", required = true, example = "0") 常用在实体属性说明
@ApiImplicitParam(name = "id", value = "用户id", paramType = "path", required = true) 常用在@PathVariable
@ApiImplicitParams({
@ApiImplicitParam(name = "clazzId", value = "班级id"),
@ApiImplicitParam(name = "date", value = "日期")
})
*/
密码加密
SHA256
new BCryptPasswordEncoder().encode();
MD5
DigestUtils.md5DigestAsHex(****.getBytes(StandardCharsets.UTF_8))
idea 快捷键
control + option + o
自动清理包、导入包。
RBAC 管理系统
Optional
Java中的java.util.Optional类的get()方法用于获取此Optional实例的值。如果此Optional实例中不存在任何值,则此方法将引发NullPointerException。
参数:此方法不接受任何参数。
JPA 高级操作
@Transactional
注解
该注解有 JPA
和 Spring
两个包,Spring的要比JPA的范围大
Spring Boot 中的事务性
对一个请求的处理,往往需要多个步骤去实现。当开启事务后,一个处理流程下的某个步骤出错,会使整个请求的处理回到初始状态。