Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在AutoWiredNotationBeanPostProcessor添加到AbstractBeanPactory.beanPostProcessors之前创建的SpringBean_Java_Spring_Autowired - Fatal编程技术网

Java 在AutoWiredNotationBeanPostProcessor添加到AbstractBeanPactory.beanPostProcessors之前创建的SpringBean

Java 在AutoWiredNotationBeanPostProcessor添加到AbstractBeanPactory.beanPostProcessors之前创建的SpringBean,java,spring,autowired,Java,Spring,Autowired,在spring上下文4.0.5中,在AbstractApplicationContext.refresh()中调用invokeBeanFactoryPostProcessors可能会导致在BeanFactoryPostProcessor实现中创建一些bean 问题是AutowiredNotationBeanPostProcessor在创建bean时没有添加到AbstractbeanFactory.beanPostProcessors(它是由调用寄存器beanPostProcessors(bean

在spring上下文4.0.5中,在AbstractApplicationContext.refresh()中调用invokeBeanFactoryPostProcessors可能会导致在BeanFactoryPostProcessor实现中创建一些bean

问题是
AutowiredNotationBeanPostProcessor
在创建bean时没有添加到AbstractbeanFactory.beanPostProcessors(它是由调用寄存器beanPostProcessors(beanFactory)在下一行添加的),因此@Autowired属性将为null


如何解决此问题?

尝试使用Spring@PostConstruct注释
问题在于刷新方法,在该方法中,在注册AutoWiredNotationBeanPostProcessor之前调用BeanFactoryPostProcessors


在应用程序上下文文件中使用导入标记时调用的方法。我使用annotation config在资源文件中注册bean并删除标记,然后问题就解决了。

Hi Pavel,tanks,请快速重播。我已经实现了InitializingBean来创建null属性的实例。我喜欢一些新的解决方案,例如将AutoWiredNotationBeanPostProcessor添加到BeanPostProcessor,或者更改AbstractApplicationContext.referes()中的调用方法顺序