1. mp的乐观锁
避免丢失更新的问题。
注意点
- mp乐观锁可查看官网的使用情况,不支持string类型,可以是数字,也可以是date
- 使用乐观锁时,要先查出数据,然后再去更新,这样version才会+1。这个有点坑,mp不能在更新的用sql带一下version+1吗,一定要查询出来才可以。
- mp默认主键id自增是19位String类型。
- 使用的时候,要加配置,不然会报绑定异常。
使用
- 数据库表添加字段version(int),方便后面+1。String类型怎么+1呢,对吧。
- 实体类 添加注解@version
- 添加配置,不添加的话会报绑定异常。
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
2. json返回时间格式的配置
注意点
- 这边只是针对时间的返回值做修改。所以字段一定是date类型的!!
使用
在application.yml中添加以下配置,会默认对所有返回的时间修改
spring:
jackson:
date-format: yyyy-MM-dd HH:mm
time-zone: GMT+8
如果个别的时间格式要定制,那么就在对应的属性上添加原来的@JsonFormat,这个优先级比配置文件中的高。
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;
3. 这个不算总结,留点小坑。模块依赖的问题
既然模块之间可以依靠< dependency ></ dependency>进行依赖,并在启动类上面添加好扫描包
@SpringBootApplication(scanBasePackages = {"com.example"}),那么还需要feign吗。
还是说dependency增加了模块之间的耦合性,不推荐这么操作呢。
4. 接口中定义常量
看到项目中在接口中定义常量,那么思考为什么不是在类上定义呢。扩展性? 暂时想到一个,接口中成员变量默认就是public string final,方便。另一方面,以后谁要继承,也好操作。