복붙노트

[SPRING] 공장에서 생성 한 인스턴스를 autowire하는 스프링 방식은 무엇입니까?

SPRING

공장에서 생성 한 인스턴스를 autowire하는 스프링 방식은 무엇입니까?

나는 (현재 구현되지 않은) 버전 의존 인스턴스를 생성하기로되어있는 컨트롤러를 가지고있다.

@Controller
public class ReportController {

    @Autowired
    private ReportCompFactory       reportCompFactory;

         public ModelAndView getReport() {
            I_Report report = reportCompFactory.getObject();
                      ^^^^^<- no autowiring in this instance 
         }
     ...
}

팩토리는 다음과 같습니다.

@Component
public class ReportCompFactory implements FactoryBean<I_Report> {

    @Override
    public I_Report getObject() throws BeansException {
        return new ReportComp();
    }

    @Override
    public Class<?> getObjectType() {
        return I_Report.class;
    }

    @Override
    public boolean isSingleton() {
        return false;
    }
}

작성된 인스턴스 필드 (@Autowired annotated)는 설정되지 않습니다. FactoryBean은 구현하기에 적합한 인터페이스입니까?

나는 xml-configurations을 포함하지 않는 솔루션을 선호한다.

구성 요소 자체 :

    ReportComp implements I_Report {

        @Autowired
        private ReportDao           reportDao;
                                     ^^^^^^^<- not set after creation
    ...
    }

}

해결법

  1. ==============================

    1.Spring은 객체를 생성 할 때 autowiring을 수행하지 않는다. 몇 가지 옵션이 있습니다.

    Spring은 객체를 생성 할 때 autowiring을 수행하지 않는다. 몇 가지 옵션이 있습니다.

  2. from https://stackoverflow.com/questions/6596655/what-is-the-spring-way-to-autowire-factory-created-instances by cc-by-sa and MIT license