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模塊。一旦作為項目的依賴項添加,這不僅會在啟動時分析應用程序的環境和打印診斷,還會在運行時為您臨時遷移屬性。這是您在應用程序遷移期間必須具備的功能:
1
2
3
4
5
6
|
<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()這個方法找不到
1
2
3
4
|
@requestmapping (value = "/find" ) public user find( long id){ return userrepository.findone(id); } |
2.0之后改成findbyid(id).get()來查詢
1
2
3
4
|
@requestmapping (value = "/find" ) public user find( long id){ return userrepository.findbyid(id).get(); } |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.jdon.com/50536