没有类型异常的唯一bean.自动装配继承类的问题



我是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

提前感谢:)

在类上使用注释,而不是在接口上!

@Service
@Qualifier("aService")
public class AServiceImpl implements AService {
    //Some methods
}

Spring不会实例化接口

a)见Grzegoz的回答
B)这不是这样做的方法:

@Service
@Qualifier("aService")

应该这样做:

@Service("aService")

@Qualifier是用来注入服务的,而不是用来构造服务的

删除

@Qualifier 
来自AService和BService接口的

注释。

查看哪些bean实现了接口AService。

在实现接口AService的bean之间,在

字段中选择要注入到类Test上的bean。
private AService aService; 
在您选择的AService实现bean中,使用
@Service("aService") 

注释。

在Test类上添加注释,

@Autowired
@Qualifier("aService")
private AService aService;

对于BService的相同场景,如果存在多个BService接口的实现

最新更新