Я использую Spring MVC версии 5 Framework.Я не могу получить бин из контекста.Я не использую конфигурацию xml для объявления bean-компонентов.Ниже приведены используемые классы.Если я автоматически связываю контекст приложения в некотором классе обслуживания и использую его для извлечения компонента, он работает.
Ниже приведена ошибка:
BeanFactory не инициализирован или уже закрыт - вызовите«обновить» перед доступом к bean-компонентам через ApplicationContext.
public class Initializer implements WebApplicationInitializer{
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(AppConfig.class);
Dynamic dynamic = servletContext.addServlet("dispatcher", new DispatcherServlet(rootContext));
dynamic.addMapping("/");
dynamic.setLoadOnStartup(1);
servletContext.addListener(new ContextLoaderListener(rootContext));
//This line gives the error
EntityA entityA = rootContext.getBean(EntityA.class);
}
}
Мой класс конфигурации
@Configuration
@EnableWebMvc
@ComponentScan(basePackages="com.main")
public class AppConfig {
@Bean(name="Entity")
@Lazy
public EntityA getEntityA(){
return new EntityA();
}
}
МОЙ класс сущности
//@Component(value="Entity")
public class EntityA {
public EntityA(){
System.out.println("Entity A initialized");
}
public void call(){
System.out.println("A Called");
}
}