首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin & Spring @ConfigurationProperties

Kotlin & Spring @ConfigurationProperties
EN

Stack Overflow用户
提问于 2017-08-30 06:09:31
回答 10查看 54.1K关注 0票数 65

如何在ConfigurationProperties Spring Boot中正确初始化Kotlin

目前,我确实喜欢下面的例子:

代码语言:javascript
复制
 @ConfigurationProperties("app")
 class Config {
     var foo: String? = null
 }

但是它看起来很难看,而且实际上foo不是一个variable,foo是常量 value,应该在启动时初始化,以后不会改变。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2019-10-28 18:03:49

使用新的SpringBoot2.2,您可以这样做:

代码语言:javascript
复制
@ConstructorBinding
@ConfigurationProperties(prefix = "swagger")
data class SwaggerProp(
    val title: String, val description: String, val version: String
)

不要忘了在build.gradle.kts中的依赖项中包含这一点

代码语言:javascript
复制
dependencies {
  annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
}
票数 60
EN

Stack Overflow用户

发布于 2018-06-13 02:55:19

下面是我如何让它处理我的application.yml文件。

代码语言:javascript
复制
myconfig:
  my-host: ssl://example.com
  my-port: 23894
  my-user: user
  my-pass: pass

这是kotlin文件:

代码语言:javascript
复制
@Configuration
@ConfigurationProperties(prefix = "myconfig")
class MqttProperties {
    lateinit var myHost: String
    lateinit var myPort: String
    lateinit var myUser: String
    lateinit var myPass: String    
}

这对我很有用。

票数 53
EN

Stack Overflow用户

发布于 2017-08-30 07:29:10

更新:从SpringBoot2.2.0开始,您可以使用数据类如下所示:

代码语言:javascript
复制
@ConstructorBinding
@ConfigurationProperties("example.kotlin")
data class KotlinExampleProperties(
        val name: String,
        val description: String,
        val myService: MyService) {

    data class MyService(
            val apiToken: String,
            val uri: URI
    )
}

有关进一步的参考,请参见正式文件

过时到SpringBoot2.2.0,发布关闭的

正如文档中所述:为了使用ConfigurationProperties,必须提供"Java “,这意味着您的属性需要有getter和setter,因此val目前是不可能的。

Getter和setter通常是强制性的,因为绑定是通过标准的Java属性描述符进行的,就像Spring中的那样。在某些情况下,策划人可能会被省略.

这个问题已经在SpringBoot2.2.0中解决了,它应该很快发布:https://github.com/spring-projects/spring-boot/issues/8762

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45953118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档