`

Spring @Qualifier注解

 
阅读更多

原创转载请注明出处: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;
    
}

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 16.4 KB
分享到:
评论

相关推荐

    如何正确使用 @Qualifier 注解来解决多个同类型 Bean 注入的问题

    使用 @Qualifier 注解是解决 Spring 中多个同类型 Bean 注入冲突的一种常见方法。当我们在 Spring 容器中存在多个同一接口或父类的实现时,如果不明确指定要注入哪个实现,Spring 就会抛出 "Consider marking one of...

    Spring @Primary和@Qualifier注解原理解析

    "Spring @Primary和@Qualifier注解原理解析" 在Spring框架中,@Primary和@Qualifier注解是两个非常重要的注解,它们的主要作用是消除bean注入时的歧义,能够让Spring容器知道加载哪个bean。本文将通过示例代码详细...

    Spring @compenent注解详解

    也可以配合`@Qualifier`注解来精确指定要注入的Bean。 7. **初始化与销毁方法** `@PostConstruct`和`@PreDestroy`注解分别标识初始化和销毁方法,Spring会在Bean实例化后调用`@PostConstruct`方法,在销毁前调用`@...

    Spring自动装配@Qualifier实例

    除了`@Qualifier`,Spring还提供了其他的注解来处理多bean的情况,比如`@Primary`。`@Primary`标记的bean在没有明确指定的情况下会优先被注入。但如果存在多个`@Primary`注解的bean,`@Qualifier`仍然是必要的选择。...

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    4. **@Qualifier注解**:如果还有多个bean,且没有`@Primary`,Spring会检查`@Autowired`注解是否带有`@Qualifier`,并根据指定的bean名称进一步筛选。 5. **索引**:如果以上方式都无法确定唯一bean,那么可以为...

    Spring@Autowired注解与自动装配.rar

    - **@Qualifier注解**:当有多个相同类型的bean时,使用`@Qualifier`指定bean的id。 ```java @Autowired @Qualifier("specificService") private MyService myService; ``` - **@Primary注解**:可以标记一个bean为...

    (转)Spring中@Autowired注解和@Resource注解的区别

    在Spring框架中,`@Autowired`和`@Resource`注解是两个常见的依赖注入(DI, Dependency Injection)工具,它们都是用来解决组件之间的耦合问题,使得代码更加灵活和可测试。然而,这两个注解在具体使用时有一些关键性...

    spring3注解详细

    # Spring 3 注解详解 在 Spring 3 中,注解成为了主要的配置方式,极大地简化了应用程序的配置。本文将详细介绍几个关键的注解,包括 @Autowired、@Qualifier、@Resource 和 @PostConstruct,以及它们在实际开发中...

    Spring实战之Qualifier注解用法示例

    Spring实战之Qualifier注解用法示例 Qualifier注解是Spring Framework中的一种依赖注入方式,用于在多个同类型的Bean中选择特定的Bean实例。下面是Qualifier注解的详细用法示例: 一、 配置文件 在Spring配置文件...

    Spring @Configuration注解及配置方法

    * @Qualifier:@Autowired注解配合使用,会将默认的按Bean类型装配修改为按照Bean实例名称装配,Bean的实例名称由@Qualifier注解的参数指定。 五、基于JavaConfig的配置形式 在实际开发中,Spring Boot社区推荐...

    Spring注解 - 52注解 - 原稿笔记

    注解包含: 拦截器 , 过滤器 , 序列化 , @After , @AfterReturning , @AfterThrowing , @annotation , @Around , @Aspect , @Autowired , @Bean , @Before , @Component , @ComponentScan , @ComponentScans , @...

    spring注解注入示例详解.pdf

    如果需要在存在多个匹配的Bean时指定使用哪一个,可以使用@Qualifier注解配合@Autowired使用。 例如: ```java @Autowired @Qualifier("userServiceImpl") public IUserService userService; ``` 上面的代码表示...

    Spring使用@Autowired注解自动装配

    在Spring框架中,`@Autowired`注解是一个关键特性,用于简化依赖注入的过程。依赖注入是一种设计模式,它允许我们解耦代码,提高模块的可测试性和可维护性。在这个主题中,我们将深入探讨`@Autowired`的工作原理、...

    spring注解实例

    此外,@Autowired注解用于自动装配bean,@Qualifier注解用于指定特定的bean。 **2. @Component注解** @Component是Spring的基本组件注解,可以标记在任何类上,表示该类是一个Spring管理的bean。通常,我们还会...

    学习Spring笔记_Annotation(注解)_Autowired_Qualifier

    Spring的核心特性之一是使用注解来简化配置,其中`@Autowired`和`@Qualifier`是两个关键的注解,它们在自动装配Bean时发挥着重要作用。这篇学习Spring笔记将深入探讨这两个注解的用法、原理以及它们在实际开发中的...

    spring的Annotation注解.

    `@Autowired`、`@Qualifier`、`@Resource`和`@Component`等注解,都是Spring框架中不可或缺的一部分,它们共同构成了Spring框架强大的功能基础。理解并熟练掌握这些注解的使用,对于提升开发效率和代码质量具有重要...

    spring注解实现注入.zip

    在Spring框架中,注解注入是一种非常常用且强大的依赖注入(Dependency Injection,简称DI)方式。依赖注入是Spring的核心特性之一,它允许开发者在不直接创建对象的情况下,将依赖关系从对象代码中分离出来,提高了...

    Spring3.0注解注入详解[总结].pdf

    2. **@Qualifier注解**:@Qualifier用来补充@Autowired的功能,当有多个相同类型的Bean时,可以通过指定Bean的id或名称来精确选择需要注入的Bean。例如,`@Autowired @Qualifier("userServiceImpl") public ...

    Spring_Qualifier_utilizando_Autowired.pdf_springqualifier_java_a

    本主题将深入探讨Spring框架中的`@Qualifier`注解,以及它如何与`@Autowired`配合使用,以实现更精确的依赖注入。 `@Autowired`是Spring框架的核心特性之一,它允许自动装配bean的依赖,无需显式地通过setter方法或...

    浅谈spring 常用注解

    浅谈Spring常用注解 浅谈Spring常用注解是Spring框架中的一些基本概念,了解这些概念对于 MASTERING SPRING Framework非常重要。本文将对Spring中常用的注解进行分类和介绍,并对每个注解的使用进行解释。 一、...

Global site tag (gtag.js) - Google Analytics