我正在尝试创建一个自动装配类型 T 的对象的类。
@component
public class TaskScheduler<T extends TaskService>{
@Autowired
private T taskService;
}
问题是我有两个扩展的组件TaskService。
@component
public class firstTaskService extends TaskService {
}
和
@component
public class secondTaskService extends TaskService {
}
所以当这条线被执行时(ts正在创建)
@Autowired
TaskScheduler<firstTaskService> ts;
我收到此错误:
说明: TaskScheduler中构造函数的参数1需要单个bean,但是找到了2个
我收到的消息建议这样做:
行动:考虑将其中一个 bean 标记为 @Primary,更新消费者以接受多个 bean,或使用 @Qualifier 来识别应该使用的 bean。
但据我了解,@Primaryand@Qualifier注释让我选择了其中一个组件,这不是我想要的,因为我想使用firstTaskService同secondTaskService一个类(TaskScheduler)。
怎么可能做到这一点?
编辑:澄清:我的目标是重用TaskScheduler具有扩展类的不同类的类(而不是使用在 中一起TaskService扩展的多个类)。TaskServiceTaskScheduler
神不在的星期二
相关分类