Spring Boot2.0迁移 浅谈Spring Boot 2.0迁移指南主要注意点
解道 人气:0Spring官方的Spring Boot 2变动指南,主要是帮助您将应用程序迁移到Spring Boot 2.0,变化部分还是很多很细节的,摘录主要点如下:
Spring Boot 2.0需要Java 8或更高版本。不再支持Java 6和7。它还需要Spring Framework 5.0,许多配置属性被重新命名/删除,开发者需要更新他们的application.properties/ application.yml相应。为了帮助您,Spring Boot提供了一个新spring-boot-properties-migrator模块。一旦作为项目的依赖项添加,这不仅会在启动时分析应用程序的环境和打印诊断,还会在运行时为您临时迁移属性。这是您在应用程序迁移期间必须具备的功能:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-properties-migrator</artifactId> <scope>runtime</scope> </dependency> <p>
Spring Boot现在默认使用CGLIB代理,包括AOP支持。如果需要基于接口的代理,则需要设置spring.aop.proxy-target-class为false
添加了一个新活动ApplicationStartedEvent。 ApplicationStartedEvent在刷新上下文之后但在调用任何应用程序和命令行运行程序之前发送。 ApplicationReadyEvent在调用任何应用程序和命令行运行程序后发送。它表示应用程序已准备好为请求提供服务。
Spring Boot 2使用Thymeleaf 3
在2.0中,我们将Jackson配置默认设置为将JSR-310日期写为ISO-8601字符串。如果要返回先前的行为,可以添加spring.jackson.serialization.write-dates-as-timestamps=true到配置中
Spring Boot 2大大简化了默认的安全配置,使添加自定义安全性变得简单。
安全自动配置不再公开选项,并尽可能使用Spring Security默认值。
Spring Boot 2 通过Spring Security 5 提供OAuth 2.0客户端支持
Actuator不再有单独的安全自动配置(management.security.*属性消失)
Spring Data Kay 重命名了许多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缓存。
补充:Spring Boot 2.0 迁移遇到的问题
1.findOne()这个方法找不到
@RequestMapping(value = "/find") public User find(long id){ return userRepository.findOne(id); }
2.0之后改成findById(id).get()来查询
@RequestMapping(value = "/find") public User find(long id){ return userRepository.findById(id).get(); }
加载全部内容