浅谈Spring Boot 2.0迁移指南主要注意点
Spring官方的SpringBoot2变动指南,主要是帮助您将应用程序迁移到SpringBoot2.0,变化部分还是很多很细节的,摘录主要点如下:
SpringBoot2.0需要Java8或更高版本。不再支持Java6和7。它还需要SpringFramework5.0,许多配置属性被重新命名/删除,开发者需要更新他们的application.properties/application.yml相应。为了帮助您,SpringBoot提供了一个新spring-boot-properties-migrator模块。一旦作为项目的依赖项添加,这不仅会在启动时分析应用程序的环境和打印诊断,还会在运行时为您临时迁移属性。这是您在应用程序迁移期间必须具备的功能:
org.springframework.boot spring-boot-properties-migrator runtime
SpringBoot现在默认使用CGLIB代理,包括AOP支持。如果需要基于接口的代理,则需要设置spring.aop.proxy-target-class为false
添加了一个新活动ApplicationStartedEvent。ApplicationStartedEvent在刷新上下文之后但在调用任何应用程序和命令行运行程序之前发送。ApplicationReadyEvent在调用任何应用程序和命令行运行程序后发送。它表示应用程序已准备好为请求提供服务。
SpringBoot2使用Thymeleaf3
在2.0中,我们将Jackson配置默认设置为将JSR-310日期写为ISO-8601字符串。如果要返回先前的行为,可以添加spring.jackson.serialization.write-dates-as-timestamps=true到配置中
SpringBoot2大大简化了默认的安全配置,使添加自定义安全性变得简单。
安全自动配置不再公开选项,并尽可能使用SpringSecurity默认值。
SpringBoot2通过SpringSecurity5提供OAuth2.0客户端支持
Actuator不再有单独的安全自动配置(management.security.*属性消失)
SpringDataKay重命名了许多CRUD存储库方法。调用重命名方法的应用程序代码必须更新。为了简化迁移,您可能需要考虑使用自定义CrudRepository子接口来声明不推荐使用旧名称的默认方法,并委托给等效的新命名方法。
默认连接池已从Tomcat切换到HikariCP.
DataSource现在,只对嵌入式数据源启用基本初始化,并在使用生产数据库时立即关闭。新的spring.datasource.initialization-mode(替换spring.datasource.initialize)提供更多的控制。
仅当未使用Liquibase或Flyway等架构管理器时,该spring.jpa.hibernate.ddl-auto属性create-drop才会默认使用嵌入式数据库。一旦检测到架构管理器,默认值就会更改为none.
Elasticsearch已升级到5.4+
不再可以自动配置常规HazelcastInstance和专用HazelcastInstance缓存。
补充:SpringBoot2.0迁移遇到的问题
1.findOne()这个方法找不到
@RequestMapping(value="/find") publicUserfind(longid){ returnuserRepository.findOne(id); }
2.0之后改成findById(id).get()来查询
@RequestMapping(value="/find") publicUserfind(longid){ returnuserRepository.findById(id).get(); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。