afnf.net

Spring Boot 2.0 M7 リリースノート和訳

Spring Boot Java 2018/01/09 01:14

Spring Boot 2.0 のリリースが2/20に予定されています。

M7までのリリースノートが出ているので、紹介します。

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes

M3までのリリースノートはこちら

Spring Boot 2.0.0 M4

  • Actuator関連の変更
    • spring-boot-actuatorとspring-boot-actuator-autoconfigureのモジュールに分割された
    • Micrometerによるメトリクス実装の置き換え
    • 出力フォーマットの変更
    • デフォルトでWebエンドポイントが無効化された
    • 設定名の変更
    • Jolokiaエンドポイントがデフォルトで無効化された 
  • Security関連の変更
  • ビルド関連
    • Gradle 4.xが必須となった
    • パラメータの名前を保持するためのコンパイラパラメータ-parametersが付与されるようになった
  • Liquibase/Flywayの設定名がspring配下に移動された
  • @AutoConfigureOrderのデフォルト値が0に変更された
  • 設定値移行のためにlevel=errorのメタデータを追加
  • 組み込みDBのDataSourceでLiquibase/Flywayを使用している場合、Hibernateの自動DDLが無効化されるようになった
  • 以下に対するDB初期化が、組み込みDBの場合だけ自動実行されるようになった
    • Spring Batch, Spring Integration, Spring Session, Quartz
    • spring.batch.initialize-schema=always などで再有効化が可能
  • auto-configurationのテストを容易にするための新しいテストモデルへの移行
  • Java9への対応が開始された

Spring Boot 2.0.0 M5

  • Surefireのテスト対象パターンが、Surefireのデフォルトに変更された
  • JUnit5を使用している場合は、Surefire2.19.1にダウングレードする必要がある
  • RedisのデフォルトクライアントがJedisからLettuceに変更された
  • OAuth 2.0 サポートが Spring Securityに移行された
  • @MockBeanや@SpyBeanについて、Mockito 1.xから2.xへ移行する必要がある
  • GradleのBootRunタスクについて、argsとjvmArgsが追加された
  • Spring BootのCIやリリースがconcourse.ciに移行された(大部分のユーザには影響なし)
  • Metrics実装が[Micrometer]http://micrometer.io/に変更された
  • JSONバインディングとして、JSON-Bがサポートされた
  • Spring Sessionのエンドポイントが/application/sessionsで提供されるようになった

Spring Boot 2.0.0 M6

  • Actuator設定がmanagement.*からmanagement.server.*に変更された
    • management.server.portを設定した場合だけ、management.server.context-pathが有効になるようになった
    • management.endpoints.web.base-pathが追加された
  • spring.config.locationの設定が修正された
    • デフォルトの参照場所として追加されるのでは無く、参照場所を置き換えられるようになった
    • 以前と同じ意味で使用したい場合は、spring.config.additional-locationを使用すること
  • JPAが有効でspring.jpa.open-in-viewが明示的に指定されていない場合、警告が表示されるようになった
    • OSIV/OEMIVは一般的にアンチパターンであるため
  • Gradleビルドにおいて、mainClassName設定がBootRun,BootJar,BootWarで参照されるようになった
  • バリエーションを含む@ConfigurationPropertiesオブジェクトに対して、@Validatedアノテーションが必須になった
  • DataSourceについて、組み込みDBの場合だけDB初期化が実行されるようになった
    • 組み込みDB以外についてはデフォルトでは初期化されない
    • spring.datasource.initialization-modeで制御できる
  • Spring MobileのAuto-configurationが削除された
  • WebFluxのエラーハンドリングが、MVCのそれと同じようになった
  • WebFluxについても、TLSやHTTP/2の設定が可能になった
  • JPAマッピングのために spring.jpa.mapping-resources設定が追加された
  • @KafkaListenerアノテーションについて、@SendToのサポートが追加された
  • デフォルトで、データソースに関連する全てのメトリクスが利用できるようになった
  • Kotlin拡張 runApplication が追加された

Spring Boot 2.0.0 M7

  • Actuatorのデフォルトパス(management.endpoints.web.base-path)が/applicationから/actuatorに変更された
  • statusエンドポイントが削除され、healthエンドポイントへ統合された
    • healthエンドポイントはデフォルトではstatusのみを表示する
    • 詳細出力を行うためには、management.endpoint.health.show-detailsを設定する
  • Actuatorエンドポイントのエクスポーズ設定がシンプルになった
    • management.endpoints.web.expose=*
    • management.endpoints.web.exclude=env
  • /actuator/conditionsにおいてAuto-configurationリポートが出力されるようになった
  • spring.jackson.serialization.write-dates-as-timestampsのデフォルト値がfalseに変更された
  • 意図しない副作用が発生したため、spring-boot-starter-jsonからjackson-module-kotlinが削除された
  • リアクティブパターンをサポートするため、SpringDataリポジトリの有効化方法が変更された
    • Cassandraを例に取ると以下のようになる
    • spring.data.cassandra.repositories.type=BLOCKING | NONE | REACTIVE | ALL
  • 外部ライブラリcommons-digesterが管理対象外となったため、pom.xmlにおいてversion要素が必須となった
  • バッチジョブを実行するCommandLineRunnerの起動順序が0に設定された
    • 訳注:元のissueはこれでしょうか。実行タイミングの保証という意図だと思われます。
  • 外部ライブラリSpring SocialのAuto-configurationと依存が削除された
  • GradleのBootRunタスクがJavaExecタスクのサブクラスとなった
  • devtoolsによる再起動で、auto-configurationの評価差分ログが出力されるようになった
  • スケジュールタスク表示のための新しいエンドポイント/actuator/scheduledtasksが追加された
  • 期間設定のプロパティについて、Java Durationタイプのsuffixが設定できるようになった
    • server.session.cookie.max-age=2d →2日間
    • suffixが無い場合は、既存の挙動が維持される
  • welcomeページについて、まず静的コンテンツ位置からindex.htmlを探索し、無い場合にindexテンプレートを表示するようになった
  • spring.cache.redis.*によりRedisキャッシュの設定が変更できるようになった
  • Hibernateの命名をImplicitNamingStrategy, PhysicalNamingStrategyによりカスタマイズできるようになった
  • リアクティブパターンのためのCouchbase starter : spring-boot-starter-data-couchbase-reactiveが追加された
  • Kotlin拡張 TestRestTemplateExtensions が追加された
  • 起動時ログにコンテキストパスが出力されるようになった
  • @WebMvcTest/@WebFluxTestにおいて、Converter/GenericConverterがスキャンされるようになった

所感

さらにRC1とRC2のリリースも予定されています。例によって、正式版のリリースは2/20から遅れるでしょう。

バージョンアップ体験記はそのうち書きます。ブランチはプッシュ済

変更履歴

  • 2018/01/09 初版
Spring Boot Java 2018/01/09 01:14
comments (0)

blog-java2 engine (build:2019-02-23 17:57 JST)