淺談Spring Boot 2.0遷移指南主要注意點(diǎn)
Spring官方的Spring Boot 2變動指南,主要是幫助您將應(yīng)用程序遷移到Spring Boot 2.0,變化部分還是很多很細(xì)節(jié)的,摘錄主要點(diǎn)如下:
Spring Boot 2.0需要Java 8或更高版本。不再支持Java 6和7。它還需要Spring Framework 5.0,許多配置屬性被重新命名/刪除,開發(fā)者需要更新他們的application.properties/ application.yml相應(yīng)。為了幫助您,Spring Boot提供了一個新spring-boot-properties-migrator模塊。一旦作為項(xiàng)目的依賴項(xiàng)添加,這不僅會在啟動時分析應(yīng)用程序的環(huán)境和打印診斷,還會在運(yùn)行時為您臨時遷移屬性。這是您在應(yīng)用程序遷移期間必須具備的功能:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-properties-migrator</artifactId> <scope>runtime</scope> </dependency> <p>
Spring Boot現(xiàn)在默認(rèn)使用CGLIB代理,包括AOP支持。如果需要基于接口的代理,則需要設(shè)置spring.aop.proxy-target-class為false
添加了一個新活動ApplicationStartedEvent。 ApplicationStartedEvent在刷新上下文之后但在調(diào)用任何應(yīng)用程序和命令行運(yùn)行程序之前發(fā)送。 ApplicationReadyEvent在調(diào)用任何應(yīng)用程序和命令行運(yùn)行程序后發(fā)送。它表示應(yīng)用程序已準(zhǔn)備好為請求提供服務(wù)。
Spring Boot 2使用Thymeleaf 3
在2.0中,我們將Jackson配置默認(rèn)設(shè)置為將JSR-310日期寫為ISO-8601字符串。如果要返回先前的行為,可以添加spring.jackson.serialization.write-dates-as-timestamps=true到配置中
Spring Boot 2大大簡化了默認(rèn)的安全配置,使添加自定義安全性變得簡單。
安全自動配置不再公開選項(xiàng),并盡可能使用Spring Security默認(rèn)值。
Spring Boot 2 通過Spring Security 5 提供OAuth 2.0客戶端支持
Actuator不再有單獨(dú)的安全自動配置(management.security.*屬性消失)
Spring Data Kay 重命名了許多CRUD存儲庫方法。調(diào)用重命名方法的應(yīng)用程序代碼必須更新。為了簡化遷移,您可能需要考慮使用自定義CrudRepository子接口來聲明不推薦使用舊名稱的默認(rèn)方法,并委托給等效的新命名方法。
默認(rèn)連接池已從Tomcat切換到HikariCP.
DataSource現(xiàn)在,只對嵌入式數(shù)據(jù)源啟用基本初始化,并在使用生產(chǎn)數(shù)據(jù)庫時立即關(guān)閉。新的spring.datasource.initialization-mode(替換spring.datasource.initialize)提供更多的控制。
僅當(dāng)未使用Liquibase或Flyway等架構(gòu)管理器時,該spring.jpa.hibernate.ddl-auto屬性create-drop才會默認(rèn)使用嵌入式數(shù)據(jù)庫。一旦檢測到架構(gòu)管理器,默認(rèn)值就會更改為none.
Elasticsearch已升級到5.4+
不再可以自動配置常規(guī)HazelcastInstance和專用HazelcastInstance緩存。
補(bǔ)充: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(); }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java簡單實(shí)現(xiàn)八叉樹圖像處理代碼示例
這篇文章主要介紹了java簡單實(shí)現(xiàn)八叉樹圖像處理代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12jdk中keytool的使用以及如何提取jks文件中的公鑰和私鑰
JKS文件由公鑰和密鑰構(gòu)成利用Java?Keytool工具生成的文件,它是由公鑰和密鑰構(gòu)成的,下面這篇文章主要給大家介紹了關(guān)于jdk中keytool的使用以及如何提取jks文件中公鑰和私鑰的相關(guān)資料,需要的朋友可以參考下2024-03-03Java中List排序的三種實(shí)現(xiàn)方法實(shí)例
其實(shí)Java針對數(shù)組和List的排序都有實(shí)現(xiàn),對數(shù)組而言你可以直接使用Arrays.sort,對于List和Vector而言,你可以使用Collections.sort方法,下面這篇文章主要給大家介紹了關(guān)于Java中List排序的三種實(shí)現(xiàn)方法,需要的朋友可以參考下2021-12-12SpringCloud?Gateway?DispatcherHandler調(diào)用方法詳細(xì)介紹
我們第一個關(guān)注的類就是DispatcherHandler,這個類提供的handle()方法,封裝了我們之后所有的handlerMappings,這個DispatcherHandler有點(diǎn)想SpringMVC的DispatchServlet,里面也是封裝了請求和對應(yīng)的處理方法的關(guān)系2022-10-10