afnf.net

Spring Boot 1.4 M3, RC1 リリースノート和訳

Spring Boot Java 2016/06/06 00:09

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-13235Issue5276による)
    • 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のリリースノートを追加
Spring Boot Java 2016/06/06 00:09
comments (3)

@kazuki43zoo 2016/07/07 00:13
1.4 RC1でましたよ!! 和訳に期待してますw

afnf 2016/07/11 00:17
RC1リリースノートを追加しました。
@kazuki43zooさんのMyBatis解説をよく参考にさせてもらってます。

@kazuki43zoo 2016/07/14 02:20
さっそくの和訳あざす! 1.4は下位互換のない変更がある印象があるので、リリースノートの和訳助かりますw(英語得意じゃないので・・・) 知り合いにも紹介しておきました!!

blog-java2 engine (build:2016-07-31 15:08 JST)