我是Java代码的新手,我有一个关于自动装配服务接口的例外。
我必须使用A和B类.B从A扩展,每个类都有自己的服务。
@Service
@Qualifier("aService")
public interface AService {
//Some methods
}
@Service
@Qualifier("bService")
public interface BService {
//Some methods
}
我在某些类中使用这些接口,并且我已经添加了注释@Qualifer
。
public class Test() {
@Autowired
@Qualifier("aService")
private AService aService;
@Autowired
@Qualifier("bService")
private BService bService;
//Some code
}
但我一直得到例外:
No unique bean of type [com.analysis.dw.AService] is defined : Unsatisfied dependency of type [interface com.analysis.dw.AService]: expected at least 1 matching bean
提前致谢:)
答案 0 :(得分:2)
在课堂上使用注释,而不是界面!
@Service
@Qualifier("aService")
public class AServiceImpl implements AService {
//Some methods
}
Spring不会实例化接口。
答案 1 :(得分:0)
删除
@Qualifier
来自AService和BService接口的注释。
查看哪些bean实现了AService接口。
在实现接口AService的bean之间,在字段中选择要在类Test上注入的bean
private AService aService;
在您选择的AService实现bean中,使用
@Service("aService")
注释。
您的Test类上的Mantein注释,
@Autowired
@Qualifier("aService")
private AService aService;
BService的相同场景是否存在多个BService接口的实现。
答案 2 :(得分:0)
a)见格泽戈兹的答案 b)这不是这样做的方法:
@Service
@Qualifier("aService")
相反,这是做到这一点的方法:
@Service("aService")
@Qualifier
用于注入服务,而不是用于构建服务