如何将@Value属性注入使用Spring 5和Kotlin Bean Definition DSL定义的bean中

时间:2018-01-23 20:30:58

标签: spring spring-boot kotlin dsl

我正在使用Kotlin开发Spring Boot(2.0.0 M7)应用程序,并且需要定义一些利用新DSL进行bean定义的bean。我无法想出一种方法来注入来自@Value属性的值。让我们考虑一下这个简化的例子:

fun beans() = beans {
    for (i in 1..10) {
        bean<String>("myString${i}" + someProperty) { "myString${i}" + someProperty}
    }
}

someProperty应该来自这样的事情:

@Value("\${myProperty}") someProperty: String

如何让beans {} DSL可以访问它?

1 个答案:

答案 0 :(得分:0)

解决了通过env变量访问值的问题:

fun beans() = beans {
    for (i in 1..10) {
        bean<String>("myString${i}" + env.getProperty("myProperty") { "myString${i}" + env.getProperty("myProperty")}
    }
}