AnnotationConfigApplicationContext 尚未刷新 - 怎么了?

新手上路,请多包涵

我非常基本的 spring 应用程序停止工作,我无法理解发生了什么。 pom.xml:

 <properties>
    <spring.version>4.1.1.RELEASE</spring.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
</dependencies>

配置类:

 @Configuration
public class MyConfig {

@Bean
public HelloWorld helloWorld() {
         return new HelloWorld();
    }
}

豆类:

 public class HelloWorld {
    private String message;

    public void setMessage(String message) {
        this.message = message;
    }
    public String getMessage() {
         return message;
    }
}

申请入口:

 public class MainApp {
public static void main(String[] args) {
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
    ctx.register(MyConfig.class);
    HelloWorld bean = ctx.getBean(HelloWorld.class);
    bean.setMessage("ladjfaj");
    System.out.println(bean.getMessage());
}
}

我收到一个错误

线程“main”中的异常 java.lang.IllegalStateException:org.springframework.context.annotation.AnnotationConfigApplicationContext@6ebf8cf5 尚未在 org.springframework.context.support.AbstractApplicationContext.assertBeanFactoryActive(AbstractApplicationContext.java:943) 处刷新。 springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:967) 在 com.nikolas.config.MainApp.main(MainApp.java:12)

原文由 Nikolas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 740
2 个回答

你必须先打电话 ctx.refresh() 才能打电话 ctx.getBean(HelloWorld.class);

原文由 Jens 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您不想显式调用 ctx.refresh() ,只需像这样初始化 ApplicationContext: new AnnotationConfigApplicationContext(MyConfig.class) ,然后配置将被隐式注册和刷新

原文由 Назар Кулян 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题