怎样判断Spring容器初始化完成
1个回答
展开全部
一个普通类实现了BeanFactoryPostProcessor,在里面调用了一个bean,结果bean中的还需要Spring注入一个类,结果空指针,单测没有问题。类摘要如下:
public class A implements BeanFactoryPostProcessor{
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory factory) throws BeansException{
……很多操作省略
((B)factory.getBean("B")).xxx();
}
}
@Component
public class B{
@Autowired
@Qualifier("C")
private C c;
public void xxx(){
// 单元测试中注掉A类中最后那句跑OK,但是启动服务就不行,包空指针
c.yyy();
}
}
上述问题,初步估计是Spring容器没有初始化完成。逻辑实现的目的是想在Spring加载完成后执行某些方法。
public class A implements BeanFactoryPostProcessor{
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory factory) throws BeansException{
……很多操作省略
((B)factory.getBean("B")).xxx();
}
}
@Component
public class B{
@Autowired
@Qualifier("C")
private C c;
public void xxx(){
// 单元测试中注掉A类中最后那句跑OK,但是启动服务就不行,包空指针
c.yyy();
}
}
上述问题,初步估计是Spring容器没有初始化完成。逻辑实现的目的是想在Spring加载完成后执行某些方法。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询