blog.bouzuya.net

2021-03-30 Kotlin で Spring Boot の @ConfigurationProperties を試している

Spring Boot の @ConfigurationProperties を試している。 Kotlin で。

@ConfigurationProperties@ConstructorBinding をつけた data class を定義しておく。

@ConfigurationProperties(prefix = "bouzuya")
@ConstructorBinding
data class Klass(val foo: String)

それを適当な @Configuration のついたクラスで @EnableConfigurationProperties(Klass::class) で有効にする。

@Configuration
@EnableConfigurationProperties(Klass::class)
class FooConfiguration(
  private val klass: Klass
) {
  // ...
}

application.yml などの設定を読み込める。

# application.yml
bouzuya:
  foo: "bar"

@Value などで気まぐれに読むこともできるけどグニャグニャした感じになるので嫌い。設定にも型がほしい。

kapt("org.springframework.boot:spring-boot-configuration-processor") を設定して ./gradlew kaptKotlin などで Configuration Metadata を生成すれば application.yml の編集時に検査もできる。面倒くさいし IntelliJ のサポートが中途半端な感じがする (ぼくの設定がおかしいだけかもしれない) 。

たぶん動く。どう動いているのかは詳しく知らない。 Spring を雰囲気で使っている。嫌い。


今日のコミット


お腹が痛い。