4
나는 (현재 구현되지 않은) 버전 의존 인스턴스를 생성하기로되어있는 컨트롤러를 가지고있다.공장에서 생성 한 인스턴스를 자동으로 작성하는 봄 방법은 무엇입니까?
@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) 생성 된 인스턴스 필드가 설정되어 있지 않습니다. FactoryBean은 구현하기에 적합한 인터페이스입니까?
XML 구성이 포함되지 않은 솔루션을 선호합니다.
구성 요소 자체 : 당신이 당신의 객체를 생성하는 경우
ReportComp implements I_Report {
@Autowired
private ReportDao reportDao;
^^^^^^^<- not set after creation
...
}
}
@irreputable 내 대답 아래의 질문을 가지고 할 세터를 통해
ReportComp
로 설정; 당신이 그것에 대해 통보를 받았는지 확실하지 않다면 – Bozho