项目随笔@Service("testService")-------第二篇

在springmvc中使用注解已经司空见惯了,今天见到了@Service("xxx")这种形式,让我大吃一惊。原来在service后面可以加参数,作为该service的名字,在spring容器中就是bean的id,用于与其他类区别,平时不需要区别,所以一直都是不带参数的。举个需要区别的场景:

假如有一接口personService,有两个实现类maleService、FemaleService,在某一个controller中这样写道

@Autowired

private PersionService persionService;

这种情况下会出现问题,因为不确定该pserisonService具体是哪个实现类的。

此时,上面的给service取名字的形式就用到了,可以这样写

@Service(“male”)

public class MaleService{

}



@Service("female")

public class FemaleService{

}

在controller中这样写

@Autowired

@Qualifier(“male”)

private PersionService presionService

这样就告诉程序我要用的实现类是MaleService

原文地址:https://www.cnblogs.com/yxjdragon/p/5920216.html