无法从Spring MVC中的上下文中获取bean

时间:2018-09-27 06:52:56

标签: spring-mvc

我正在使用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");
    }
}

0 个答案:

没有答案