Spring Boot 1.4.0のリリースが6/23に予定されています・・・まあ遅れると思いますがw ちなみに、1.3.0のリリースは1~2ヶ月ぐらい遅れたと記憶しています。
M1からM3のリリースノートが出ているので、紹介します。
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.4-Release-Notes
最新のリリースノートを和訳しましたので、こちらをご覧下さい。
Spring Boot 1.4 リリースノート和訳 (http://blog.afnf.net/blog/87)
Spring Boot 1.4.0 M1
- executable jarのレイアウト変更(Maven, Gradle, Antを使用している場合は影響なし)
- 非推奨クラス・メソッド等の削除
- spring.datasourceにあったJDBC POOL設定が、実装毎の名前空間に移動した
例)spring.datasource.test-on-borrow → spring.datasource.tomcat.test-on-borrow
- spring.jtaにあったJTA設定が、spring.jta.atomikos.propertiesに移動した
例)spring.jta.checkpoint-interval → spring.jta.atomikos.properties.checkpoint-interval
- @ConfigurationPropertiesで生成されるのbean nameパターンが変更された
- Jetty JNDIが spring-boot-starter-jetty starterに含まれなくなった
- spring-boot.versionプロパティが削除された
- 二重起動など、起動失敗時のエラー出力が明瞭になった
- spring-boot-starter-testがAssert4J assertions libraryを使用するようになった
- org.springframework.boot.testパッケージがspring-boot-testに移動された
Spring Boot 1.4.0 M2
- テスト系クラスの変更
- org.springframework.boot.testパッケージの変更
- SpringBootTestアノテーションへの移行
- @RunWith(SpringJUnit4ClassRunner.class)→@RunWith(SpringRunner.class) への変更
- JPA persistence providerとして、Hibernate 5.1が使用されるようになった(Spring Boot 1.3はHibernate 4.3を使用していた)
- Guava cachesからCaffeineへの移行推奨
- Spring Framework 4.3への更新
- サードパーティライブラリの更新
- Hibernate 5.1
- Jackson 2.7
- Solr 5.5
- Spring Data Hopper
- Spring Session 1.2
- Hazelcast 3.6
- banner.gif, banner.jpg, banner.png ファイルをsrc/main/resourcesに用意しておくと、ASCIIアート化されて起動時バナーに使用される
- JsonComponentアノテーションの追加
- spring-boot-starter-data-couchbase starterによるCouchbaseのサポート追加
- spring-boot-starter-data-neo4j starterによるNeo4Jのサポート追加
- Spring DataリポジトリとしてRedisが使用できるようになった
- spring-boot-starter-jta-narayana starterによるJTAトランザクションマネージャNarayanaのサポート追加
- Gitコミット情報やビルド情報の出力が可能になった
- MetricsFilterのgauge/counterが、HTTP Methodごとにグルーピング出力できるようになった
- ContextConfigurationアノテーションを指定しない場合、Configurationを自動的に検索するようになった
- MockBeanアノテーションを付与する事で、Mockitoによるモッキングが可能になった
- JsonTestアノテーション、WebMvcTestアノテーション、DataJpaTestアノテーションの追加
- JacksonHelperにより、AssertJベースのテストが可能になった
- AutoConfigureRestDocsアノテーションによるSpring REST Docsの出力
- その他
- server.jetty.acceptors と server.jetty.selectors の追加
- server.max-http-header-size と server.max-http-post-size の追加
- server.tomcat.min-spare-threads の追加
- application.ymlのspring.profilesで、「!」による否定構文がサポートされるようになった
- 非推奨
- Velocity が非推奨となった(SPR-13235、Issue5276による)
- UndertowEmbeddedServletContainer のいくつかのコンストラクタが非推奨となった
- ConfigurationPropertiesアノテーションのlocations/merge属性が非推奨となった
- SpringApplication.printBannerが使用されなくなった
- InfoEndpoint.getAdditionalInfoが非推奨となった
Spring Boot 1.4.0 M3
- starterのリネーム
- spring-boot-starter-ws → spring-boot-starter-webservices
- spring-boot-starter-redis → spring-boot-starter-data-redis
- spring.mvc.dispatch-options-requestがデフォルトでtrueとなった
- リモートシェル設定が shell.* から management.shell.* に移動された
- マルチパート設定が multipart.* から spring.http.multipart.* に移動された
- spring-boot-starter-integrationが整理された
- spring.session.store-type設定により、Spring SessionバックエンドがRedisを含めた5種から選択可能になった
- アプリのデフォルト識別子として、jarのシンボリックリンク名ではなく、正規名が使用されるようになった
- TestRestTemplateがRestTemplateを継承しなくなった
- エンコーディングの強制設定が、リクエストだけになった
- spring.http.encoding.force=trueにより、レスポンスにも強制できる
- src/main/resource/public/error/404.html などにより、HTTPステータスコード毎のエラーページ・テンプレートが定義できるようになった
- ErrorPageRegistryが追加され、サーブレットコンテナのエラーページ設定がカスタマイズできるようになった
- OAuth2のためのPrincipalExtractorが追加された
- 非推奨
- PropertiesConfigurationFactory.setProperties(Properties)が非推奨となった
- org.springframework.boot.context.embedded パッケージのいくつかのクラスが org.springframework.boot.web.servlet に移動された
- org.springframework.boot.context.web パッケージのクラスが全て移動された
Spring Boot 1.4.0 RC1
- spring-boot-starter-data-mongodb starterによるMongoDBのバージョンが2.14.2から3.2.2に変更された
- spring-boot-starter-batch starterから組み込みDBの依存が削除された
- 例えばhsqldbを追加する必要があるかもしれない
- Hibernateのデフォルトバージョンが5.0.9になった
- server.server-headerプロパティを指定した場合にだけ、Serverヘッダが設定されるようになった
- @org.springframework.boot.orm.jpa.EntityScanが非推奨となり、@org.springframework.boot.autoconfigure.domain.EntityScanに変更する必要がある
- サードパーティライブラリの更新
- Jetty 9.3
- Tomcat 8.5
- Jersey 2.23
- Artemis 1.3
- Ehcache 3.1
- Elasticsearch 2.3
- Spring REST Docs 1.1
- Spring AMQP 1.6
- Spring Integration 4.3.
- RestTemplateBuilderが追加され、例えばBASIC認証が簡単に設定できるようになった
- RestClientTestアノテーションの追加
- Jest(ElasticSearchのHTTP Restクライアント実装)がクラスパスにある場合にJestClientが追加されるようになった
- spring-data-elasticsearch starterが無くてもElasticSearchが使用できるようになった
- Spring SessionでJDBCストアを使用する場合、関連スキーマが自動生成されるようになった
- Artemis/HornetQに対してパスワード認証付きの接続が出来るようになった
- その他
- actuatorにheapdumpエンドポイントが追加された
- Spring Mobileが全てのテンプレートエンジンで自動設定されるようになった
- Spring Boot maven pluginにincludeSystemScope属性が追加された
- HandlerExceptionResolverによる例外をロギングするためのspring.mvc.log-resolved-exceptionプロパティが追加された
- spring.data.cassandra.schema-actionプロパティが追加された
- 非推奨
- spring-boot-starter-hornetqが非推奨となり、spring-boot-starter-artemisを使用するようになった
- management.security.roleが非推奨となり、management.security.rolesを使用するようになった
所感
バージョンアップ体験記はこちらです。結構影響を受けました。
設定プロパティ名の変更は結構な影響がありそうですね。JDBC POOL設定とか、サーブレットコンテナ設定とか。starter名称も含め、まだ落ち着きそうにありませんね。
Velocityはずっと開発が止まっていたので、非推奨になったのも納得。ちなみに2000年に始まっていて、最後のリリースは2010年です。ちなみにFreeMarkerは2002年から始まっていて、今もメンテナンスが続いています。
変更履歴
- 2016/06/06 初版
- 2015/07/11 RC1のリリースノートを追加
@kazuki43zooさんのMyBatis解説をよく参考にさせてもらってます。