spring - 关于“动态注入”的Spring Boot依赖注入的困惑
问题描述
有两个 Bean MyProperities 和 MyTask:
@Component
class MyTask(@Qualifier("p1") val b: MyProperties)
class MyProperties
@Configuration
open class MyPropertiesConfig {
@Bean("p1")
open fun get1() = MyProperties()
@Bean("p2")
open fun get2() = MyProperties()
}
MyProperties 是 application.properties(或其他属性文件)持有者类的属性。MyProperties 的数量为n
,MyTask 会根据 MyProperties 的内容做不同的任务。是否有任何优雅的方式可以动态注入 bean MyProperties(具有不同的内容),以便 MyTask 可以根据 MyProperties 执行某些操作?
我有一个方法,但它是如此丑陋......
@Configuration
open class MyTaskConfig {
@Bean("t1")
open fun getT1(@Qualifier("p1") @Autowired p: MyProperties) = MyTask(p)
@Bean("t2")
open fun getT2(@Qualifier("p2") @Autowired p: MyProperties) = MyTask(p)
}
class MyTask(val p: MyProperties)
@Configuration
open class MyPropertiesConfig {
@Bean("p1")
open fun get1() = MyProperties()
@Bean("p2")
open fun get2() = MyProperties()
}
class MyProperties
@Component
class TestClass {
@Qualifier("t1")
@Autowired
lateinit var task1: MyTask
@Qualifier("a2")
@Autowired
lateinit var task2: MyTask
}
感谢您的观看和解答!
解决方案
推荐阅读
- php - 带有 Slim Framework(v4) 的正文请求返回 null
- reactjs - React 实用教程中的比较作业
- php - PHPUnit 5.7.23 中为 foreach() 提供的参数无效
- javascript - 如何从具有组的用户列表中创建具有地址字符串的组?
- ios - 设置单元格的更好方法
- javascript - PHP 驱动的选择函数
- python - 使用 Tensorflow 提高 Iris ML 模型的准确性
- scala - Spark中序列化的概述是什么
- pandas - 两个数据帧之间的百分比变化
- go - 如何通过使用 gocelery 模块设置 ETA 来安排任务?