Spring的注解@Qualifier用法与简析
Posted 早起的年轻人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring的注解@Qualifier用法与简析相关的知识,希望对你有一定的参考价值。
1 基本说明
使用@Qualifier可以分别为同样类型的Bean分别注入不同的依赖值
然后当我们@Autowired注入时就会出现异常,NoUniqueBeanDefinitionException, 以提示有多个满足条件的 bean 进行自动装配。程序无法正确做出判断使用哪一个。
@Autowired
private TestService testService;
2 @Qualifier 注解 可以解决上述问题
@Autowired
@Qualifier("testServiceImpl1")
private TestService testService;
@Autowired
@Qualifier("testServiceImpl2")
private TestService testService2;
通过将 @Qualifier 注解与我们想要使用的特定 Spring bean 的名称一起进行装配,Spring 框架就能从多个相同类型并满足装配要求的 bean 中找到我们想要的.
3 @Primary
对同一个接口,可能会有几种不同的实现类,如这里的 TestServiceImpl2 与 TestServiceImpl1.
@Service
public class TestServiceImpl1 implements TestService
@Override
public void test()
System.out.println("TestServiceImpl1 test 方法 ");
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
@Service
@Primary
public class TestServiceImpl2 implements TestService
@Override
public void test()
System.out.println("TestServiceImpl2 test 方法 ");
在使用 @Autowired 注解进行对象注入时,就会默认加载TestServiceImpl2
@Autowired
private TestService testService;
以上是关于Spring的注解@Qualifier用法与简析的主要内容,如果未能解决你的问题,请参考以下文章
Spring中@Resource与@Autowired@Qualifier的用法与区别