參考文檔:
根據(jù) Spring Boot的milestones,2018年2月底就將發(fā)布捐韩,因為在研究spring cloud是己,順便梳理下Spring Boot 2 的主要變化。
依賴變化
Java8及以上
Spring Boot 2將不在支持Java6和7蝙斜,Java8是基線舅锄。Java9也會全面兼容。1.x版本不會支持Java9
多余的話,軟件領(lǐng)域技術(shù)更新其實非郴锖快,我在面試Java開發(fā)人員時瞬欧,發(fā)現(xiàn)很多人對Java8依然沒有任何了解贷屎。但是從業(yè)界看來,Java8已經(jīng)是基線版本了艘虎。
Java生態(tài)支持升級
這當(dāng)然是必然的唉侄。官方文件中有描述,簡單羅列幾個主要的:
- Jetty >= 9.4
- Tomcat >= 8.5
- Hibernate >= 5.2
- Gradle >= 3.4
- 國內(nèi)mybatis用的比較多顷帖,mybatis已經(jīng)在支持springboot2了 milestone
Spring Framework 5.0
Spring Boot 2基于Spring5
Gradle插件修改
Spring Boot的Gradle插件做了很多改進美旧,可參考官方文檔:gradle-plugin
為了靈活,插件默認(rèn)不在提供spring依賴管理贬墩,需要額外配置:
apply plugin: 'io.spring.dependency-management'
功能升級
支持Reactive
目前已經(jīng)提供了對Redis\MongoDB\Cassandra\Couchbase支持
spring-reactive-sample
安全全面升級
默認(rèn)情況下榴嗅,所有數(shù)據(jù)都是安全的,包括靜態(tài)文件和Actuator端點陶舞。
看到403, 那大概是忘記配置Security了嗽测。
生產(chǎn)環(huán)境支持
Spring Boot Actuator得到極大的提升
web框架
同時支持WebFlux狂鞋、Jersey驻呐、Spring-MVC,之前只支持Spring-MVC
支持自定義端點
如下蛉艾,可以創(chuàng)建一個 fruits 的監(jiān)控端點
@Endpoint(id = "fruits")
public class FruitsEndpoint {
@ReadOperation
public Map<String, Fruit> fruits() { ... }
@WriteOperation
public void addFruits(@Selector String name, Fruit fruit) { ... }
}
總結(jié)
變化還很多停做,基于時間和個人能力限制晤愧,不繼續(xù)描述。但是整體來說蛉腌,個人覺得最重要的變化是:
- Java8最低版本官份,這讓Spring可以利用Java8的特性大規(guī)模重寫,有效的降低開發(fā)烙丛、維護成本并提升性能舅巷。
- 對發(fā)布和生產(chǎn)環(huán)境更下監(jiān)控管理更友好,這也是微服務(wù)趨勢下的必然河咽,Spring Cloud 從 Finchley 版本開始就是基于Spring Boot 2
- 對安全更進一步重視钠右,同樣在微服務(wù)下,錯誤的默認(rèn)配置很容易釀成大禍忘蟹,還是嚴(yán)格點好飒房。