1.idea在gradle编译时提示gbk的编译问题
常用解决方法:在build.gradle里边添加
tasks.withType(JavaCompile){
options.encoding = "UTF-8";
}
其他解决方法: 在gradle-wappter.properties文件中添加systemProp.file.encoding=UTF-8。
gson解析时字段名与数据名不一致问题
字段名使用@SerializedName("数据库字段名")进行注解即可成功解析。
2.Date类型参数需要格式化
@RequestParam(name = "toTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date toTime
3.mybatis的xml文件的大于小于号需要转码
and res.end_time >= #{fromTime,jdbcType=TIMESTAMP}
and res.end_time <= #{toTime,jdbcType=TIMESTAMP}
4.mybatis插入数据后返回数据id
即:xml的insert语句中中useGeneratedKeys="true" keyProperty="id"即可
5.spring.factories进行插件的配置初始化
使用 spring.factories 文件有什么好处呢?假如我们封装了一个插件,该插件提供给其他开发人员使用。我们可以在 spring.factories 文件中指定需要自动注册到 Spring 容器的 bean 和一些配置信息。使用该插件的开发人员只需少许配置,甚至不进行任何配置也能正常使用。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.duoshi.filing.FilingAutoConfiguration
6.数据完整性校验,需考虑数据库json数据类型及BigDecimal的默认位数影响导致的校验无法通过问题
7.No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 3: filingTransactionManager,reportTransactionManager,wafTransactionManager
@Transactional(rollbackFor = {BasicException.class}, readOnly = false,transactionManager = "reportTransactionManager")
异步注解不生效
@Async需要在不同类使用才会产生异步效果,方法一定要从另一个类中调用,也就是从类的外部调用,类的内部调用是无效的
没有走Spring的代理类。因为@Transactional和@Async注解的实现都是基于Spring的AOP,而AOP的实现是基于动态代理模式实现的。那么注解失效的原因就很明显了,有可能因为调用方法的是对象本身而不是代理对象,因为没有经过Spring容器管理
@SpringBootApplication启动类当中没有添加@EnableAsync注解
异步方法使用注解@Async的返回值只能为void或者Future
注解的方法必须是public方法。
如果需要从类的内部调用,需要先获取其代理类