我正在使用Spring MVC版本5框架。我无法从上下文中获取bean。我没有使用任何xml配置来声明bean。以下是正在使用的类。如果我在某些服务类中自动关联应用程序上下文并使用它来获取Bean,那么它将起作用。
以下是错误:
BeanFactory未初始化或已关闭-在调用'refresh'之前 通过ApplicationContext访问bean。
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");
}
}