服务启动时报了该异常。

 在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

 

posted on 2021-12-02 10:56  天马行空的秋意  阅读(334)  评论(0编辑  收藏  举报