Spring注入类的两种形式

举报
wljslmz 发表于 2023/07/14 23:15:37 2023/07/14
【摘要】 当在 Spring 中有多个实现类时,我们可以使用 @Qualifier 或者 @Primary 注解来注入具体的实现类。本文将为您详细介绍这两种方式的使用方法。 使用 @Qualifier 注解@Qualifier 注解允许我们在注入时指定一个限定符,以明确要注入的 bean。以下是使用 @Qualifier 注解的步骤:在每个实现类上添加一个自定义的限定符注解,表示不同的实现类。例如,我...

当在 Spring 中有多个实现类时,我们可以使用 @Qualifier 或者 @Primary 注解来注入具体的实现类。本文将为您详细介绍这两种方式的使用方法。

使用 @Qualifier 注解

@Qualifier 注解允许我们在注入时指定一个限定符,以明确要注入的 bean。以下是使用 @Qualifier 注解的步骤:

  1. 在每个实现类上添加一个自定义的限定符注解,表示不同的实现类。例如,我们可以创建两个限定符注解 @ServiceA@ServiceB 分别标注两个实现类。

    @ServiceA
    public class ServiceAImpl implements MyService {
        // ...
    }
    
    @ServiceB
    public class ServiceBImpl implements MyService {
        // ...
    }
    
  2. 在需要注入的地方,使用 @Autowired@Qualifier 注解结合使用。将 @Qualifier 注解的值设置为对应的限定符注解。

    @Autowired
    @Qualifier("ServiceA")
    private MyService myService;
    

这样,Spring 就可以根据限定符注解来确定要注入的具体实现类。

使用 @Primary 注解

@Primary 注解用于标识主要的实现类,当存在多个实现类时,首选被标记为 @Primary 的实现类进行注入。以下是使用 @Primary 注解的步骤:

  1. 在需要作为默认注入的实现类上添加 @Primary 注解。

    @Primary
    public class ServiceAImpl implements MyService {
        // ...
    }
    
    public class ServiceBImpl implements MyService {
        // ...
    }
    
  2. 在需要注入的地方使用 @Autowired 注解注入依赖。

    @Autowired
    private MyService myService;
    

这样,Spring 将会首选被标记为 @Primary 的实现类进行注入。

总结

本文介绍了在 Spring 中注入多个实现类时,使用 @Qualifier@Primary 注解的方法。通过使用限定符注解和主要注解,我们可以明确指定要注入的实现类,或者设置一个主要的默认实现类。根据具体的业务需求,选择合适的方式来注入多个实现类。

希望本文对您理解和使用 Spring 中的多个实现类注入提供了帮助。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。