使用这样的配置:
class MySpringConfig {
@Bean // Lowest priority
@Qualifier("pri1")
Bean beanPri1() { ... }
@Bean // Medium priority
@Qualifier("pri2")
Bean beanPri2() { ... }
// @Bean // Highest priority
// @Qualifier("pri3")
// Bean beanPri3() { ... }
}
和这样的服务:
@Service
class MyService {
@Autowired
@Qualifier("pri1")
Bean beanPri1;
@Autowired
Bean beanWhateverTheHighestPriIs;
}
是否可以告诉 Spring 注入(inject):
beanPri1
(因为它是由@Qualifier
给出的)到Service.beanPri1
- 将最高优先级的 bean 放入
Service.beanWhateverTheHighestPriIs
使用注释或类似的东西可以相对容易地跨配置和不同的 bean 集重用?
具有上述配置并进行以下更改的示例:
- 没有变化:
Service.beanWhateverTheHighestPriIs
应该是beanPri2
- 取消注释
beanPri3
:Service.beanWhateverTheHighestPriIs
应该是beanPri3
- 注释
beanPri2
:Service.beanWhateverTheHighestPriIs
应该是beanPri1
最佳答案
您可以使用 @Order annotation告诉spring先用哪个
关于java - Spring 选择最高优先级的bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57731648/