ApplicationContextAware找不到bean

一粒大豌豆 2017-10-25 09:54:39
在获取ApplicationContext时实现了ApplicationContextAware接口,在获取@Configuration配置的bean时报异常:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named xx is defined.
但是在获取自动扫描的service时是正常的。
例如:SpringContextHolder.getBean("userService");

然后在new获取 ApplicationContext后是可以正常获取bean的
ApplicationContext context = new AnnotationConfigApplicationContext(POJOConfig.class);
User_login user_login=(User_login) context.getBean("user_login");

在项目启动时@Configuration注解的类构造方法是执行了的
打印了: POJOConfig容器启动初始化。。。
下面是代码
@Configuration
public class POJOConfig {
public POJOConfig() {
System.out.println("POJOConfig容器启动初始化。。。");
}
@Bean(name="user_login")
@Scope("prototype")
public User_login user_login(){
User_login user_login=new User_login();
user_login.setTime(new Date());
return user_login;
}
}
@Service
public class SpringContextHolder implements ApplicationContextAware {
private static ApplicationContext applicationContext;

@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextHolder.applicationContext = applicationContext;
}


public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String beanName) {
return applicationContext.getBean(beanName);
}

public static <T>T getBean(String beanName , Class<T>clazz) {
return applicationContext.getBean(beanName , clazz);
}
public static boolean checkNull(){
if(applicationContext==null){
return true;
}else{
return false;
}

}
}
配置文件都是自动扫描的就不贴了,applicationContext也获取到了。
是不是还有什么配置我漏了?
...全文
263 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
一粒大豌豆 2017-10-25
  • 打赏
  • 举报
回复
问题解决了,我在两个xml里面分别配置了自动扫描,不知道为什么,改成全写在一个xml配置文件里就可以。

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧