例如:interface接口有两个实现类InterfaceImpl1和InterfaceImpl2
InterfaceImpl1
@Service
public class InterfaceImpl1 implements Interface{}
InterfaceImpl2
@Service
public class InterfaceImpl2 implements Interface{}
方法一:指定实现类的优先级,注入的时候使用优先级高的实现类
InterfaceImpl2
@Service
@Primary //同一个接口的实现类,最多只有有一个添加该注解
public class InterfaceImpl2 implements Interface{}
在controller中注入接口,默认使用的是Primary标注的实现类的方法
方法二:@Autowired和@Qualifier配合注入
@Autowired
@Qualifier("InterfaceImpl1")
Interface interface;
方法三:使用@Resource注入,根据默认类名区分
@Resource("InterfaceImpl1")
Interface interface;
方法四:使用@Resource注入,根据@Service指定的名称区分
@Service("s1")
public class InterfaceImpl1 implements Interface{}
@Resource("s1")
Interface interface;