0
点赞
收藏
分享

微信扫一扫

Spring的注解@Qualifier用法与简析

少_游 2022-10-03 阅读 209


1 基本说明

使用@Qualifier可以分别为同样类型的Bean分别注入不同的依赖值

Spring的注解@Qualifier用法与简析_java


然后当我们@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;


举报

相关推荐

0 条评论