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 を雰囲気で使っている。嫌い。
- https://www.baeldung.com/configuration-properties-in-spring-boot
- https://www.baeldung.com/spring-enable-config-properties
- https://spring.io/blog/2019/11/07/spring-boot-2-2-1-available-now
- https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-annotation-processor
今日のコミット
- rust-atcoder 1 commit
- pakencamp_2020_day1 i
- ひさしぶりに自力で解けた
- pakencamp_2020_day1 i
お腹が痛い。