java - Spring 选择最高优先级的bean

标签 java spring

使用这样的配置:

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/

相关文章:

java - 使用 JAXB 进行数字签名的命名空间处理

java - Classname.Variable 使用 Classname 作为变量

sql - Spring 应用程序数据库行级安全性最佳方法

java - 如何配置 rmi 服务导出端点地址?

java - 如何在 Windows 和 Mac 上为 Java 应用程序设置正确的字体?

java - 在Java中: validate XML against multiple schema's,位于@不同的服务器位置

java - Spring Boot LDAP - 用于自动配置的池化属性

Spring Security 自定义过滤器创建无限循环

java - Spring Data JPA - 在日期之前和之后构建查询

java - Spring MVC 将模型作为 dto 传递给表单?