Spring的注解@Qualifier注解
Posted 流楚丶格念
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring的注解@Qualifier注解相关的知识,希望对你有一定的参考价值。
概念
@Qualifier是Spring中的注解,是在使用Spring框架中@Autowired注解进行自动注入时,Spring 容器中匹配的候选Bean数目必须有且仅有一个 。
这是因为在使用Spring框架中@Autowired标签时默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。当找不到一个匹配的 Bean 时,Spring 容器将抛BeanCreationException 异常,并指出必须至少拥有一个匹配的 Bean。
比如,有两个service实现了统一业务接口,并且都标注了@Service注解,Spring 允许我们通过 @Qualifier 注释指定注入 Bean 的名称,这样歧义就消除。
@Qualifier参数:@Qualifier的参数名称必须为我们之前定义@Service注解的名称之一
使用:配合autowired使用
也就是说:@Qualifier注解就是通过名字挑选符合条件的,通过这个标示,表明了哪个实现类才是我们所需要的
看下面一个例子更加清晰了就
代码示例
这里我们定义两个接口的实现类,都加上service注解
@Service("a")
public class QualifierServiceImpl implements QualifierService
public QualifierDto getQualifierById(Long id)
return new QualifierDto();
@Service("b")
public class QualifierServiceImpl1 implements QualifierService
public QualifierDto getQualifierById(Long id)
return new QualifierDto();
我们应用@Qualifier(“b”),就可以消除上面定义的歧义,注入容器中的就是QualifierServiceImpl1
的实例了
@Controller
@RequestMapping("/test")
public class TestQualifier
@Autowired
@Qualifier("b")
QualifierService qualifierService;
@RequestMapping(params = "method=showQualifierInfo")
public void showQualifierInfo(HttpServletRequest request, HttpServletResponse response, QualifierDto dto)
......
以上是关于Spring的注解@Qualifier注解的主要内容,如果未能解决你的问题,请参考以下文章