All Articles

SpringBoot1系から2系に移行した

Spring Boot2系に移行してハマった点について書きます。ほぼ備忘録です。変更点見つけたら随時書いていこうと思います。 移行前のSpring Bootのバージョンは1.5.10です。

参考にしたドキュメント

Web

ErrorAttributes#getErrorAttributes()の引数変わった

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/error/ErrorAttributes.java

Gradle

実行可能jarの作り方

1

bootRepackageタスクが呼ばれたあとにjarタスクが呼ばれて実行可能jarが作られるようです。

bootRepackage {
    executable = true
}

2

bootJarタスクで実行可能jarを作ります。jarタスクは無効になっているようです。 https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/gradle-plugin/reference/html/#packaging-executable-and-normal

bootJar {
    launchScript()
}

バージョンアップ

2系では、Gradle 4.x以上がマストです。

wrapper {
    gradleVersion = "4.10.2"
    distributionType = Wrapper.DistributionType.ALL
}

コマンドを実行
./gradlew wrapper

jarの名前を変更する

jar.baseName='hoge' -> bootJarタスク内で archivesBaseName='hoge'

actuator

エンドポイントプレフィックス

1

/health

2

/actuatorがつくようになりました。 https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/html/production-ready-endpoints.html

/actuator/health

logging

logback-spring.xmlのProfile指定方法

1 ~ 2.0.x「,」区切りでした。

<springProfile name="dev, staging">
    <!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
</springProfile>

2.1.x「|」区切りになりました。

https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/html/boot-features-logging.html#profilespecific_configuration

<springProfile name="dev | staging">
    <!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
</springProfile>

Lombok

Gradle 4.9でlombok.javac.apt.LombokProcessor could not be initialized

Lombokのバージョンを 1.18.2 にする。 参考

Gradle 5.0からはアノテーションプロセッサをコンパイル時のクラスパスから取得する方法がサポートされない

Flyway

マイグレーション情報格納テーブルの名前が変更 schema_version -> flyway_schema_history

Test

MockitoJUnitRunnerのパッケージ変更

org.mockito.runners.MockitoJUnitRunner -> org.mockito.junit.MockitoJUnitRunner

JUnit 5.4.2から追加する依存関係減った