服务启动时报了该异常。
在controller类中有如下代码片段:
public static void main(String[] args) {
@Autowired
pricvate TestFactory testFactory;
1: public void test(type){
2: AbstractTest abstractTest = testFactory.createImpl(type);
3: Content content = new Content(abstractTest);
4: content.doXx();
}
}
一个抽象类AbstractTest
两个具体的实现类AImpl BImpl
一个上下文内类Content ,目的:组织抽象类多个方法的调用的顺序
一个工厂类TestFactory 。目的:根据不同入入参返回不同的实现类的实例
前提:是属于spring框架,所以除过抽象类的所有类都加了@Component注解,将been管理交由spring容器。
问题分析:1、服务启动时spring通过@Componnet要初始化所有的bean
2、当初始化Content 时,里面的属性是抽象类,且抽象类有两个实现,所以导致了启动时的异常
解决方式:去掉Content类的@Component注解,在方法调用时通过 new创建bean