举个例子:现在我们有一个接口TestService
分别有两个实现类TestService1Impl和TestService2Impl
我们在一个测试类中将TestService使用@Resource注入,编译的时候会报错,因为我们没有指定具体实现类引起的错误
解决方法一:
在希望调用那个实现类上边加@Primary注解,可以解决
等等,如果我在另外一个实现类上也加上@Primary注解,会怎样那?
当然是失败了,报错“TestService' available: more than one 'primary' bean found among candidates: [testService1Impl, testService2Impl]”,哈哈哈!看来同一个接口实现类下只能有一个Primary。
解决方法二:
使用@Qualifier解决
首先
然后:
成功了
还有一点,如果你不使用@Resource而使用@Autowired,idea会自动提醒有错哦!