AnnotationConfigApplicationContext尚未刷新 - 出了什么问题?

Nik*_*las 11 java configuration 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>
Run Code Online (Sandbox Code Playgroud)

配置类:

@Configuration
public class MyConfig {

@Bean
public HelloWorld helloWorld() {
         return new HelloWorld();
    }
}
Run Code Online (Sandbox Code Playgroud)

Bean类:

public class HelloWorld {
    private String message;

    public void setMessage(String message) {
        this.message = message;
    }
    public String getMessage() {
         return message;
    }
}
Run Code Online (Sandbox Code Playgroud)

申请入境点:

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());
}
}
Run Code Online (Sandbox Code Playgroud)

而且我收到了一个错误

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

Jen*_*ens 18

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


Наз*_*лян 10

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