昨儿代码需求写到这儿,干脆记录汇总下
接口多实现的时候,可以通过注解和配置来指定具体的实现类
一、注解形式实现
1、可在serviceImpl类中的@service注解上,指定其名称
@service("s1")
public class xxxServiceImpl1 {
}
2、也可在serviceImpl类中的@service注解上,不指定具体名称
public class xxxServiceImpl2 {
}
针对以上两点,在调用自己需要的实现类时:
- 通过value的值来指定@Service配置名称为“s1”的实现类
@Autowired @Qualifier(value = "s1")
- 通过name的值来指定@Service配置名称为“s1”的实现类
@Resource(name = “s1”)
- 通过name的值来指定@Service配置时,未指定具体名称实现类,并对name赋值为实现类的首字符小写的名称
@Resource(name = "xxxServiceImpl2")
3、还可在指定的实现类上添加@Primary注解,来告诉spring在注入容器时选择哪个实现类
@Service
@Primary
public class xxxServiceImpl3 {
}
(没写完,突然来工作了,待会补充)