Spring Boot 2.0遷移指南主要注意點
Spring官方的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快取。