Как получить доступ к свойствам среды в элементе beans в Bean Definition DSL с помощью Spring 5 и Kotlin

Я хочу определить некоторые компоненты в зависимости от значений некоторых свойств из файла application.yml приложения Spring Boot. Например, с помощью number-of-beans: 5 я создаю цикл for для создания 5 экземпляров bean-компонента:

application.yml

number-of-beans: 5

BeanDsl.kt

fun beans() = beans {
    val n = env.getProperty("number-of-beans")
    for (i in 1..n) {
        bean<String>("string${i}") { "string${i}" }
    } 
}

Проблема заключается в том, как получить доступ к среде в этот момент, поскольку переменная env там недоступна. Забавно, что он находится внутри элемента bean{}.


person codependent    schedule 23.01.2018    source источник


Ответы (1)


Это невозможно в Spring Framework 5.0, но я только что добавил такую ​​поддержку через это commit, это улучшение будет доступно начиная с Spring Framework 5.1 / Spring Boot 2.1.

person Sébastien Deleuze    schedule 12.04.2018