Kotlin&Spring Boot @ConfigurationProperties
如何使用Kotlin正确初始化Spring Boot中的 ConfigurationProperties?
目前我喜欢在下面的例子中:
@ConfigurationProperties("app") class Config { var foo: String? = null }
但它看起来相当丑陋,实际上foo
是不可变的,foo是不变的 , 应该在启动过程中初始化,将来不会改变 。
如果你看看Docs ,那么你需要提供一个“Java Bean”,如果你想使用ConfigurationProperties
。 这意味着你的属性需要有getter和setter,所以val
是不可能的。
getters和setter通常是强制的,因为绑定是通过标准的Java Beans属性描述符来完成的,就像在Spring MVC中一样。 有些情况下,
有一个开放的问题与Kotlin有关: https : //github.com/spring-projects/spring-boot/issues/8762
@Value("\${some.property.key:}") lateinit var foo:String
可以这样使用