【问题标题】:How to inject @Value properties into beans defined using Spring 5 and Kotlin Bean Definition DSL如何将 @Value 属性注入使用 Spring 5 和 Kotlin Bean 定义 DSL 定义的 bean
【发布时间】:2018-07-02 18:41:32
【问题描述】:

我正在使用 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 可以访问它?

【问题讨论】:

    标签: spring spring-boot kotlin dsl


    【解决方案1】:

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

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

    【讨论】:

    • env 在 bean 构造函数中不可访问。仅在BeanDefinitionContext
    猜你喜欢
    • 2018-02-06
    • 1970-01-01
    • 2011-09-09
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    相关资源
    最近更新 更多