Я работаю с некоторыми контроллерами и сервисами, основанными на аннотациях Spring 3, и у меня возник вопрос, как это возможно?
В моем файле servlet-context.xml
есть пути для загрузки следующих элементов:
<context:component-scan base-package="com.project.controller, com.project.service"/>
Под контроллером у меня это есть в классе init, а init помечен как:
@PostConstruct
public void init() {
ApplicationContext context = new GenericApplicationContext();
bizServices = (BizServices) context.getBean("bizServices");
}
В моих Сервисах у меня есть бин для сервисов, помеченных как:
@Service("bizServices")
public class BizServicesImpl implements BizServices { ... }
Я получаю исключение как:
SEVERE: Allocate exception for servlet Spring MVC Dispatcher Servlet
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'bizServices' is defined
Это говорит мне о том, что я использую неправильную службу контекста приложения или бин не найден. Могу ли я найти и загрузить этот класс Service явно в PostConstruct без Autowire? Что если я загрузил классы своих служб с фабрики, могу ли я указать, что такое класс фабрики, и это будет запись конфигурации bean-компонента в xml?
Еще раз спасибо ...