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

How to inject @Value properties into beans defined using Spring 5 and Kotlin Bean Definition DSL

我正在使用 Kotlin 开发 Spring Boot (2.0.0 M7) 应用程序,并且需要利用新的 Bean 定义 DSL 来定义一些 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 可以访问它?

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

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