Kotlin 和 Spring Boot @ConfigurationProperties

新手上路,请多包涵

如何使用 KotlinSpring Boot 中正确初始化 ConfigurationProperties?

目前 我喜欢下面的例子:

  @ConfigurationProperties("app")
 class Config {
     var foo: String? = null
 }

但它看起来很丑,实际上 foo 不是 var iable,foo 是 常量 val ue 并且 应该在启动期间初始化并且不会改变.

原文由 Sonique 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

使用新的 Spring Boot 2.2 ,您可以这样做:

 @ConstructorBinding
@ConfigurationProperties(prefix = "swagger")
data class SwaggerProp(
    val title: String, val description: String, val version: String
)

并且不要忘记将其包含在 build.gradle.kts 的依赖项中:

 dependencies {
  annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
}

原文由 Dmitry Kaltovich 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是我如何使用我的 application.yml 文件。

 myconfig:
  my-host: ssl://example.com
  my-port: 23894
  my-user: user
  my-pass: pass

这是 kotlin 文件:

 @Configuration
@ConfigurationProperties(prefix = "myconfig")
class MqttProperties {
    lateinit var myHost: String
    lateinit var myPort: String
    lateinit var myUser: String
    lateinit var myPass: String
}

这对我很有用。

原文由 Ray Hunter 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题