原创转载请注明出处:http://agilestyle.iteye.com/blog/2330133
考虑一个如下的场景:如图所示,两个Invoice的Service实现同一个接口,在Resource下调用两个服务的话,需要使用@Qualifier注解来确保注入的Bean是唯一的。
IBatchApprovalService.java
public interface IBatchApprovalService { ... }
IInvoiceApprovalService.java
public interface IInvoiceApprovalService { ... }
PaymentBatchApprovalService.java
@Service public class PaymentBatchApprovalService implements IBatchApprovalService { ... }
InvoiceDetailApprovalService.java
@Service("invoiceDetailApprovalService") public class InvoiceDetailApprovalService implements IInvoiceApprovalService { ... }
InvoiceHeaderApprovalService.java
@Service("invoiceHeaderApprovalService") public class InvoiceHeaderApprovalService implements IInvoiceApprovalService { ... }
PaymentApprovalResource.java
@Component @Scope("request") @Path("/payment_approval") public class PaymentApprovalResource { ... @Inject @Qualifier("invoiceDetailApprovalService") private IInvoiceApprovalService invoiceDetailApprovalService; @Inject @Qualifier("invoiceHeaderApprovalService") private IInvoiceApprovalService invoiceHeaderApprovalService; @Inject private IBatchApprovalService paymentBatchApprovalService; }
相关推荐
使用 @Qualifier 注解是解决 Spring 中多个同类型 Bean 注入冲突的一种常见方法。当我们在 Spring 容器中存在多个同一接口或父类的实现时,如果不明确指定要注入哪个实现,Spring 就会抛出 "Consider marking one of...
"Spring @Primary和@Qualifier注解原理解析" 在Spring框架中,@Primary和@Qualifier注解是两个非常重要的注解,它们的主要作用是消除bean注入时的歧义,能够让Spring容器知道加载哪个bean。本文将通过示例代码详细...
也可以配合`@Qualifier`注解来精确指定要注入的Bean。 7. **初始化与销毁方法** `@PostConstruct`和`@PreDestroy`注解分别标识初始化和销毁方法,Spring会在Bean实例化后调用`@PostConstruct`方法,在销毁前调用`@...
除了`@Qualifier`,Spring还提供了其他的注解来处理多bean的情况,比如`@Primary`。`@Primary`标记的bean在没有明确指定的情况下会优先被注入。但如果存在多个`@Primary`注解的bean,`@Qualifier`仍然是必要的选择。...
4. **@Qualifier注解**:如果还有多个bean,且没有`@Primary`,Spring会检查`@Autowired`注解是否带有`@Qualifier`,并根据指定的bean名称进一步筛选。 5. **索引**:如果以上方式都无法确定唯一bean,那么可以为...
- **@Qualifier注解**:当有多个相同类型的bean时,使用`@Qualifier`指定bean的id。 ```java @Autowired @Qualifier("specificService") private MyService myService; ``` - **@Primary注解**:可以标记一个bean为...
在Spring框架中,`@Autowired`和`@Resource`注解是两个常见的依赖注入(DI, Dependency Injection)工具,它们都是用来解决组件之间的耦合问题,使得代码更加灵活和可测试。然而,这两个注解在具体使用时有一些关键性...
# Spring 3 注解详解 在 Spring 3 中,注解成为了主要的配置方式,极大地简化了应用程序的配置。本文将详细介绍几个关键的注解,包括 @Autowired、@Qualifier、@Resource 和 @PostConstruct,以及它们在实际开发中...
Spring实战之Qualifier注解用法示例 Qualifier注解是Spring Framework中的一种依赖注入方式,用于在多个同类型的Bean中选择特定的Bean实例。下面是Qualifier注解的详细用法示例: 一、 配置文件 在Spring配置文件...
* @Qualifier:@Autowired注解配合使用,会将默认的按Bean类型装配修改为按照Bean实例名称装配,Bean的实例名称由@Qualifier注解的参数指定。 五、基于JavaConfig的配置形式 在实际开发中,Spring Boot社区推荐...
注解包含: 拦截器 , 过滤器 , 序列化 , @After , @AfterReturning , @AfterThrowing , @annotation , @Around , @Aspect , @Autowired , @Bean , @Before , @Component , @ComponentScan , @ComponentScans , @...
如果需要在存在多个匹配的Bean时指定使用哪一个,可以使用@Qualifier注解配合@Autowired使用。 例如: ```java @Autowired @Qualifier("userServiceImpl") public IUserService userService; ``` 上面的代码表示...
在Spring框架中,`@Autowired`注解是一个关键特性,用于简化依赖注入的过程。依赖注入是一种设计模式,它允许我们解耦代码,提高模块的可测试性和可维护性。在这个主题中,我们将深入探讨`@Autowired`的工作原理、...
此外,@Autowired注解用于自动装配bean,@Qualifier注解用于指定特定的bean。 **2. @Component注解** @Component是Spring的基本组件注解,可以标记在任何类上,表示该类是一个Spring管理的bean。通常,我们还会...
Spring的核心特性之一是使用注解来简化配置,其中`@Autowired`和`@Qualifier`是两个关键的注解,它们在自动装配Bean时发挥着重要作用。这篇学习Spring笔记将深入探讨这两个注解的用法、原理以及它们在实际开发中的...
`@Autowired`、`@Qualifier`、`@Resource`和`@Component`等注解,都是Spring框架中不可或缺的一部分,它们共同构成了Spring框架强大的功能基础。理解并熟练掌握这些注解的使用,对于提升开发效率和代码质量具有重要...
在Spring框架中,注解注入是一种非常常用且强大的依赖注入(Dependency Injection,简称DI)方式。依赖注入是Spring的核心特性之一,它允许开发者在不直接创建对象的情况下,将依赖关系从对象代码中分离出来,提高了...
2. **@Qualifier注解**:@Qualifier用来补充@Autowired的功能,当有多个相同类型的Bean时,可以通过指定Bean的id或名称来精确选择需要注入的Bean。例如,`@Autowired @Qualifier("userServiceImpl") public ...
本主题将深入探讨Spring框架中的`@Qualifier`注解,以及它如何与`@Autowired`配合使用,以实现更精确的依赖注入。 `@Autowired`是Spring框架的核心特性之一,它允许自动装配bean的依赖,无需显式地通过setter方法或...
浅谈Spring常用注解 浅谈Spring常用注解是Spring框架中的一些基本概念,了解这些概念对于 MASTERING SPRING Framework非常重要。本文将对Spring中常用的注解进行分类和介绍,并对每个注解的使用进行解释。 一、...