Spring Boot:更改属性占位符指示符

时间:2015-11-20 07:21:18

标签: java spring spring-boot kotlin

在Spring Boot中更改属性占位符的前缀和后缀的最简单方法是什么?

默认值为@Value("${some.property}"),但这在Kotlin中看起来很难看,因为它需要被转义 - $ {something}是Kotlin中用于字符串模板的语言功能。

2 个答案:

答案 0 :(得分:2)

他们使用带有@ConfigurationProperties注释的java类的新功能。这在Kotlin看起来不错,并且正在重构保存。你应该试一试:

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-typesafe-configuration-properties

答案 1 :(得分:2)

根据dox提供的答案提供的建议,我最终得到了类似的内容:

public interface TokenAuthenticationConfig {

public fun apiKey() : String

}

@Component
@ConfigurationProperties(prefix = "service.api")
public open class TokenAuthenticationConfigImpl : TokenAuthenticationConfig
{
    public var apiKey : String

    constructor() {
        this.apiKey = ""
    }

    override fun apiKey(): String
    {
        return this.apiKey
    }
}

在Spring @ConfigurationProperties中,对象必须遵循Java Beans模式,因此是可变的。对我来说,配置好像在应用程序生命周期中通常应该是静态的,因此不是添加关于状态的推理的复杂性,而是注入了不可变的接口。