如何使用 Spring 5 和 Kotlin 访问 Bean 定义 DSL 的 beans 元素中的环境属性
How to access Environment properties in the beans element of the Bean Definition DSL using Spring 5 and Kotlin
我想根据 Spring 引导应用程序的 application.yml 文件中某些属性的值定义一些 bean。例如,使用 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}" }
}
}
问题是此时如何访问环境,因为环境变量在那里不可用。有趣的是它在 bean{}
元素中。
Spring Framework 5.0 不可能,但我刚刚通过 this commit 添加了此类支持,此改进将在 Spring Framework 5.1 / Spring 启动 2.1.
我想根据 Spring 引导应用程序的 application.yml 文件中某些属性的值定义一些 bean。例如,使用 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}" }
}
}
问题是此时如何访问环境,因为环境变量在那里不可用。有趣的是它在 bean{}
元素中。
Spring Framework 5.0 不可能,但我刚刚通过 this commit 添加了此类支持,此改进将在 Spring Framework 5.1 / Spring 启动 2.1.