我的基本弹簧应用程序停止工作,我无法理解发生了什么。 的的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();
}
}
Bean类:
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) 在org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:967) 在com.nikolas.config.MainApp.main(MainApp.java:12)
答案 0 :(得分:16)
您必须先致电ctx.refresh()
,然后才能致电ctx.getBean(HelloWorld.class);
答案 1 :(得分:0)
如果您不想显式调用ctx.refresh()
,只需像这样初始化ApplicationContext:
new AnnotationConfigApplicationContext(MyConfig.class)
,然后配置将被隐式注册和刷新
答案 2 :(得分:0)
只要有人遇到类似的问题并且不能直接与上述示例相关,这可能会有所帮助:
当我的一个存储库位于其中所包含的文件夹之外时,我遇到了问题
@EnableJpaRepositories(basePackages = {"com.myproject.repositores"})
这是第一个例外:
说明:字段配置文件中的存储库 com.myproject.featurepackage.config.ProfileService需要一个Bean 键入“ com.myproject.featurepackage.ProfileRepository”无法 被发现。注入点具有以下注释:- @ org.springframework.beans.factory.annotation.Autowired(required = true)
之后我访问ApplicationContext以实例化一个时,我遇到了错误
org.springframework.context.annotation.AnnotationConfigApplicationContext@4983159f 尚未刷新