史上最全 SpringBoot 1.5.0.RELEASE 版本特性介紹(全文英譯版)

Spring Boot??v1.5.0.RELEASE

參考鏈接:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.5-Release-Notes#new-and-noteworthy

Spring Boot 1.5 Release Notes

Upgrading from Spring Boot 1.4

Deprecations from Spring Boot 1.4

在Spring Boot 1.4中棄用的類、方法和屬性已經(jīng)在這個(gè)版本中刪除了叫乌。請(qǐng)確保在升級(jí)之前沒有調(diào)用已棄用的方法渣淳。特別地末荐,HornetQ和Velocity支撐被移除。

Renamed starters

以下在Spring Boot 1.4中被重命名的啟動(dòng)器現(xiàn)在已經(jīng)被刪除了近范,如果你得到了“unresolved dependency”錯(cuò)誤脊髓,請(qǐng)檢查你是否拉入了正確命名的啟動(dòng)器:

spring-boot-starter-ws?→?spring-boot-starter-web-services

spring-boot-starter-redis?→?spring-boot-starter-data-redis

@ConfigurationProperties validation

如果您有使用JSR-303約束注解的@ConfigurationProperties類,那么您現(xiàn)在應(yīng)該用@Validated額外注解它們⊥缇觯現(xiàn)有的驗(yàn)證將繼續(xù)工作,但是將記錄一個(gè)警告导匣。將來才菠,沒有@Validated的類將根本不被驗(yàn)證。

Spring Session store

以前贡定,如果你有Spring Session和沒有特殊配置的Redis, Redis會(huì)自動(dòng)用于存儲(chǔ)會(huì)話「撤茫現(xiàn)在需要指定存儲(chǔ)類型;Redis Spring Session的現(xiàn)有用戶應(yīng)該增加以下配置:

spring.session.store-type=redis

Actuator security

執(zhí)行器“sensitive”的端點(diǎn)現(xiàn)在在默認(rèn)情況下是安全的(即使不依賴于“Spring Security”)。如果您現(xiàn)有的Spring Boot 1.4應(yīng)用程序使用了Spring Security?(并且沒有任何自定義安全性配置)缓待,那么應(yīng)該像以前一樣工作进每。如果您現(xiàn)有的Spring Boot 1.4應(yīng)用程序具有自定義安全配置,并且希望對(duì)敏感端點(diǎn)開放訪問命斧,那么您需要在安全配置中顯式地配置該配置田晚。如果您正在升級(jí)一個(gè)不依賴于Spring Security?的Spring Boot 1.4應(yīng)用程序,并且如果希望保持對(duì)敏感端點(diǎn)的開放訪問国葬,就需要設(shè)置management.security.enabled=false贤徒。有關(guān)更多細(xì)節(jié),請(qǐng)參閱更新后的參考文檔-updated reference documentation汇四。

訪問端點(diǎn)所需的默認(rèn)角色也從ADMIN更改為ACTUATOR接奈。這是為了防止在碰巧將ADMIN角色用于其他目的時(shí)意外暴露端點(diǎn)。如果您想恢復(fù)Spring Boot 1.4 behavior設(shè)置management.security.roles屬性為ADMIN通孽。

InMemoryMetricRepository

InMemoryMetricRepository不再直接實(shí)現(xiàn)MultiMetricRepository⌒蚧拢現(xiàn)在注冊(cè)了一個(gè)新的InMemoryMultiMetricRepository bean,它滿足MultiMetricRepository接口背苦,并由一個(gè)常規(guī)的InMemoryMetricRepository支持互捌。由于大多數(shù)用戶將與MetricRepository或MultiMetricRepository接口交互(而不是內(nèi)存中實(shí)現(xiàn)),因此該更改應(yīng)該是透明的行剂。

spring.jpa.database

現(xiàn)在可以從spring.datasource.url屬性自動(dòng)檢測(cè)spring.jpa.database中的公共數(shù)據(jù)庫秕噪。url屬性。如果您已經(jīng)手動(dòng)定義了spring.jpa.database厚宰,并且您使用了一個(gè)公共數(shù)據(jù)庫腌巾,那么您可能想要嘗試完全刪除該屬性。

一些數(shù)據(jù)庫有不止一種方言(例如,Microsoft SQL Server有3種方言)澈蝙,所以我們可能會(huì)配置一個(gè)與您正在使用的數(shù)據(jù)庫版本不匹配的方言吓坚。如果您之前有一個(gè)有效的設(shè)置,并且希望依賴Hibernate來自動(dòng)檢測(cè)方言灯荧,則設(shè)置spring.jpa.database=default凌唬。另外,您也可以使用spring.jpa.database-platform屬性自己設(shè)置方言漏麦。

@IntegrationComponentScan

Spring Integration的@IntegrationComponentScan注解現(xiàn)在是自動(dòng)配置的。如果你遵循推薦的項(xiàng)目結(jié)構(gòu)-recommended project structure况褪,你應(yīng)該嘗試刪除它撕贞。

ApplicationStartedEvent

如果你當(dāng)前在代碼中監(jiān)聽ApplicationStartedEvent,你應(yīng)該重構(gòu)以使用ApplicationStartingEvent测垛。我們重新命名了這個(gè)類捏膨,以便更準(zhǔn)確地反映它的功能。

Spring Integration Starter

spring-boot-starter-integration POM不再包含spring-integration-jmx食侮。如果您需要Spring Integration JMX支持号涯,您應(yīng)該自己包含spring-integration-jmx依賴項(xiàng)。

Devtools excluded by default

Maven和Gradle插件現(xiàn)在都默認(rèn)將spring-boot-devtools jar打包到“fat”jar中锯七。如果你正在使用devtools遠(yuǎn)程支持链快,你現(xiàn)在需要在你的build.gradle或者pom.xml文件中顯式地設(shè)置excludeDevtools屬性。

Gradle 1.x

Spring Boot Gradle插件不再與Gradle 1兼容眉尸。以及Gradle 2.x的早期版本域蜗。請(qǐng)確保你是Gradle 2.9或更高版本。

Remote CRaSH shell

不幸的是噪猾,Spring Boot用于提供遠(yuǎn)程SSH支持的CRaSH project不再被積極維護(hù)霉祸。很遺憾,我們已經(jīng)決定棄用遠(yuǎn)程執(zhí)行器SSH支持袱蜡,并且計(jì)劃在Spring Boot 2.0中完全刪除它丝蹭。

OAuth 2 Resource Filter

The default order of the OAuth2 resource filter has changed from?3?to?SecurityProperties.ACCESS_OVERRIDE_ORDER - 1. This places it after the actuator endpoints but before the basic authentication filter chain. The default can be restored by setting?security.oauth2.resource.filter-order = 3

OAuth2資源過濾器的默認(rèn)順序已從3更改為SecurityProperties.ACCESS_OVERRIDE_ORDER - 1.。這會(huì)將它放置在執(zhí)行器端點(diǎn)之后坪蚁,但在基本身份驗(yàn)證過濾器鏈之前奔穿。可以通過設(shè)置security.oauth2.resource.filter-order = 3來恢復(fù)默認(rèn)值敏晤。

JSP servlet

默認(rèn)情況下巫橄,JSP servlet不再處于開發(fā)模式。使用DevTools時(shí)茵典,會(huì)自動(dòng)啟用開發(fā)模式湘换。也可以通過設(shè)置server.jsp-servlet.init-parameters.development=true來顯式啟用它。

Ignored paths and?@EnableWebSecurity

In Spring Boot 1.4 and earlier, the Actuator would always configure some ignored paths irrespective of the use of?@EnableWebSecurity. This has been corrected in 1.5 so that using?@EnableWebSecurity?will switch off all auto-configuration of web security thereby allowing you to take complete control.

在Spring Boot 1.4和更早的版本中,執(zhí)行器總是會(huì)配置一些忽略的路徑彩倚,而不管是否使用@EnableWebSecurity筹我。這個(gè)問題已經(jīng)在1.5中得到了糾正,因此使用@EnableWebSecurity將關(guān)閉所有web安全的自動(dòng)配置帆离,從而允許你完全控制蔬蕊。

New and Noteworthy

Tip Check?the configuration changelog?for a complete overview of the changes in configuration.

Third-party library upgrades

許多第三方庫已經(jīng)升級(jí)到最新版本。更新包括Spring Data Ingalls, Jetty 9.4, JooQ 3.9, AssertJ 2.6.0, Hikari 2.5和Neo4J 2.1哥谷。幾個(gè)Maven插件也進(jìn)行了升級(jí)岸夯。

Loggers endpoint

一個(gè)新的執(zhí)行器記錄器端點(diǎn)允許您動(dòng)態(tài)查看和更改應(yīng)用程序日志記錄級(jí)別。JMX和MVC端點(diǎn)都可用们妥。例如猜扮,要更改MVC端點(diǎn)的日志記錄級(jí)別,您可以向?/loggers/com.yourcorp.application發(fā)布一篇文章监婶。使用以下JSON:

{"configuredLevel":"DEBUG"}

要使用JMX端點(diǎn)更新記錄器旅赢,您將使用setLogLevel操作。For more details see?the updated documentation.

Apache Kafka support

Spring Boot 1.5 include auto-configuration support for Apache Kafka via thespring-kafkaproject. To use Kafka simply include the?spring-kafka`depenency and configure the appropriate `spring.kafka.*?application properties.

Spring Boot 1.5包含了通過spring-kafka項(xiàng)目對(duì)Apache Kafka的自動(dòng)配置支持惑惶。要使用Kafka煮盼,只需包含spring-kafka依賴項(xiàng)并配置相應(yīng)的spring.kafka.*?application屬性。

從Kafka接收消息就像注解一個(gè)方法一樣簡(jiǎn)單:

Cloud Foundry actuator extensions

Spring Boot的執(zhí)行器模塊現(xiàn)在包含了額外的支持带污,當(dāng)您部署到兼容的Cloud Foundry實(shí)例時(shí)就會(huì)激活這些支持僵控。/cloudfoundryapplication路徑為所有NamedMvcEndpoint bean提供了另一種安全路由。

云計(jì)算管理ui可以利用端點(diǎn)來顯示額外的執(zhí)行器信息鱼冀。例如喉祭,關(guān)鍵云計(jì)算在應(yīng)用程序狀態(tài)旁邊顯示運(yùn)行狀況信息:

你可以在參考文檔-reference documentation中閱讀更多關(guān)于Cloud Foundry端點(diǎn)的信息,你可以閱讀這篇關(guān)于PCF 1.9的博文-this blog post about PCF 1.9.雷绢。

LDAP support

Spring Boot現(xiàn)在為任何兼容的LDAP服務(wù)器提供自動(dòng)配置泛烙,并支持Unbounded內(nèi)嵌的內(nèi)存中的LDAP服務(wù)器。

See?the documentation?for more details.

AuditEvents Endpoint Support

新的AuditEventsJmxEndpoint bean現(xiàn)在允許您通過JMX查詢以前記錄的AuditEvents翘紊。MBean通過getData操作公開AuditEventRepository查找方法蔽氨。對(duì)于身份驗(yàn)證和授權(quán)事件,會(huì)自動(dòng)記錄審計(jì)帆疟,您可以使用AuditEventRepository記錄自己的事件鹉究。該信息也由一個(gè)新的/auditevents MVC端點(diǎn)公開。

Transaction manager properties

現(xiàn)在可以使用spring.transaction.*屬性配置自動(dòng)配置的PlatformTransactionManager的各個(gè)方面踪宠。目前支持“default-timeout”和“提交失敗時(shí)回滾(rollback-on-commit-failure)”屬性自赔。

JmxEndpoint interface

引入了一個(gè)新的JmxEndpoint接口,允許您開發(fā)僅通過JMX公開的執(zhí)行器端點(diǎn)柳琢。這個(gè)接口非常類似于已經(jīng)為僅針對(duì)MVC的端點(diǎn)提供的MvcEndpoint接口绍妨。

Vendor specific flyway migrations

您現(xiàn)在可以定義特定于數(shù)據(jù)庫供應(yīng)商的飛行路線遷移陶缺。要使用特定于供應(yīng)商的遷移践盼,請(qǐng)?jiān)O(shè)置flyway.locations屬性如下:

flyway.locations=db/migration/{vendor}

See?this how-to?for more details.

Deprecation level

現(xiàn)在可以在元數(shù)據(jù)中定義屬性的棄用級(jí)別驼抹。級(jí)別可以是warning(默認(rèn))或error柱锹。

下面是一個(gè)在Spring Boot 2中移動(dòng)的屬性的手動(dòng)元數(shù)據(jù)示例:

到目前為止,當(dāng)一個(gè)已棄用的屬性不再綁定時(shí)灾测,我們將全部刪除元數(shù)據(jù)爆价。這個(gè)新特性允許標(biāo)記一個(gè)屬性(這里是server.context-parameters)的錯(cuò)誤。您最喜歡的IDE的新版本應(yīng)該使用它來提供幫助媳搪。

Testing updates

現(xiàn)在可以排除通常由@Test…注解導(dǎo)入的自動(dòng)配置铭段。所有現(xiàn)有的@Test…注解現(xiàn)在都包含了一個(gè)excludeAutoConfiguration屬性∏乇或者序愚,您可以直接將@ImportAutoConfiguration(exclude=…?)?添加到您的測(cè)試中。

Spring Boot 1.5還引入了一個(gè)新的@JdbcTest注解鲜结,可以用來測(cè)試直接的JDBC交互。

Custom fat jar layouts

Spring Boot Maven和Gradle插件現(xiàn)在支持自定義fat jar布局活逆。這個(gè)特性允許在Spring Boot之外開發(fā)實(shí)驗(yàn)性的布局精刷,比如這個(gè)布局-such as this one。更多詳細(xì)信息蔗候,請(qǐng)參見更新后的文檔-?the updated documentation.怒允。

JmsTemplate customizations

It is now possible to customize the auto-configured?JmsTemplate?using additional keys available in the?spring.jms.template.*?namespace.

現(xiàn)在可以使用spring.jms.template.*名稱空間中提供的其他鍵來定制自動(dòng)配置的JmsTemplate。

Miscellaneous

Mockito 2.x現(xiàn)在可以與@MockBean一起使用(仍然與Mockito 1.9兼容)

嵌入的啟動(dòng)腳本現(xiàn)在支持強(qiáng)制停止

為Cassandra添加了一個(gè)新的健康檢查

Cassandra用戶定義的類型現(xiàn)在被解析(通過Spring Data的SimpleUserTypeResolver)

skip屬性現(xiàn)在適用于Spring Boot Maven插件運(yùn)行锈遥、“停止”和“重新打包”目標(biāo)

如果找到多個(gè)主方法類纫事,Maven和Gradle插件將自動(dòng)使用帶@SpringBootApplication注釋的方法類

Deprecations in Spring Boot 1.5

TomcatEmbeddedServletContainerFactory.setTldSkip已棄用,取而代之的是setTldSkipPatterns

ApplicationStartedEvent已被ApplicationStartingEvent取代

LoggingApplicationListener的幾個(gè)常量已經(jīng)被LogFile的版本取代

使用Guava進(jìn)行緩存已經(jīng)被棄用所灸,因?yàn)镚uava支持將在Spring Framework 5中被刪除丽惶。?Upgrade to Caffeine。

CRaSH支持已經(jīng)被棄用爬立,因?yàn)樗辉俦环e極維護(hù)

在引入JmxEndpoint之后钾唬,EndpointMBeanExporter?中的幾個(gè)受保護(hù)的方法已被棄用

SearchStrategy.PARENTS已經(jīng)被SearchStrategy.ANCESTORS取代

Apache DBCP已棄用,取而代之的是DBCP 2

server.undertow.buffers-per-region?屬性已經(jīng)被廢棄侠驯,因?yàn)樗辉偈褂?see?UNDERTOW-587)

@AutoConfigureTestDatabase已經(jīng)從org.springframework.boot.test.autoconfigure.orm.jpa移動(dòng)到org.springframework.boot.test.autoconfigure.jdbc

Property Renames

server.max-http-post-size屬性已經(jīng)被特定技術(shù)的變體所取代 (例如:server.tomcat.max-http-post-size)

spring.data.neo4j.session.scope屬性已經(jīng)被刪除

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末抡秆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吟策,更是在濱河造成了極大的恐慌儒士,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件檩坚,死亡現(xiàn)場(chǎng)離奇詭異着撩,居然都是意外死亡诅福,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門睹酌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來权谁,“玉大人,你說我怎么就攤上這事憋沿⊥浚” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵辐啄,是天一觀的道長(zhǎng)采章。 經(jīng)常有香客問我,道長(zhǎng)壶辜,這世上最難降的妖魔是什么悯舟? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮砸民,結(jié)果婚禮上抵怎,老公的妹妹穿的比我還像新娘。我一直安慰自己岭参,他們只是感情好反惕,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著演侯,像睡著了一般姿染。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秒际,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天悬赏,我揣著相機(jī)與錄音,去河邊找鬼娄徊。 笑死闽颇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寄锐。 我是一名探鬼主播进萄,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼锐峭!你這毒婦竟也來了中鼠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤沿癞,失蹤者是張志新(化名)和其女友劉穎援雇,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椎扬,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惫搏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年具温,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筐赔。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铣猩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茴丰,到底是詐尸還是另有隱情达皿,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布贿肩,位于F島的核電站峦椰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏汰规。R本人自食惡果不足惜汤功,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溜哮。 院中可真熱鬧滔金,春花似錦、人聲如沸茂嗓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽在抛。三九已至钟病,卻和暖如春萧恕,著一層夾襖步出監(jiān)牢的瞬間刚梭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工票唆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朴读,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓走趋,卻偏偏與公主長(zhǎng)得像衅金,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子簿煌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容