Spring Boot 2.3.x の Web アプリを 2.4.x へバージョンアップする ( 感想 )
記事一覧はこちらです。
Spring Boot 2.4 Release Notes と What's New in Version 5.3 には結構記述があるのですが、アプリに直接影響が出る変更がなく今回はバージョンアップするだけで終わりました。
Config File Processing (application properties and YAML files) の変更は記事を書く前から聞いていたので身構えていたのですが、ドキュメントを読むと使っていない機能に関する変更だったので影響ありませんでした。調べている時に見つけた関連しそうなリンクをメモっておきます。
- Config file processing in Spring Boot 2.4
https://spring.io/blog/2020/08/14/config-file-processing-in-spring-boot-2-4 - Spring Boot Config Data Migration Guide
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Config-Data-Migration-Guide - Configure a Pod to Use a ConfigMap
https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/
- Config file processing in Spring Boot 2.4
これまでバージョンアップした時には追加されている Common Application properties(昔からのクセで Google で検索する時は
spring boot appendix a
を入力していますね。。。) は Release Notes に記述がなければ特にチェックしていなかったのですが、2.3 から spring.redis.lettuce.cluster.refresh.period が追加されて Lettuce を利用する Redis Cluster 用の RedisConnectionFactory Bean を自分で定義する必要がなくなっていました(設定ファイルだけでよくなった)。今後は org.springframework.boot:spring-boot-autoconfigure の META-INF/spring-configuration-metadata.json をチェックすることにします。概要 で「今回のバージョンアップで Redis 6+lettuce-core 6 の構成になるので、Redis 6 の新機能を試してみます。 」と書いていたのですが、一番興味があった Client-side caching の機能を試そうとしたら lettuce-core の Issue に Investigate for Client-side caching using Redis Cluster and Master/Replica を見つけて Redis Cluster だと使用できないようなので今回は止めておきます。
Spring Boot とは直接関係ありませんが、今回いろいろ調べている時に Groovy の公式ドキュメントのサイトを見つけたのでメモっておきます(事例も豊富で分かりやすい!)。JsonSlurper の存在を初めて知ったり、サイト内のリンクから JsonUnit も初めて知りました。テストは Groovy&Spock で書くことが多いのですが、groovy-sql とか便利なライブラリも多いので個人的にはまだまだテストは Groovy で記述するつもりです。
- Groovy Language Documentation
https://docs.groovy-lang.org/latest/html/documentation/ https://github.com/apache/groovy/tree/master/src/spec/doc
- Groovy Language Documentation
次は、最近の Gradle Multi Project は buildSrc ディレクトリの下に plugin を書いてやる方式に変わっているようなので、それについて調べる予定です。