У меня есть контроллер, который должен создавать экземпляры, зависящие от версии (в настоящее время не реализовано).
@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
...
}
}