ImportBeanDefinitionRegistrar 注册bean

使用ImportBeanDefinitionRegistrar动态注册一个bean A,bean A中注入了一个bean B,bean B是通过@Bean注解声明的,导致bean A中的bean B为空,请问有大牛知道解决办法吗

你的A注入B是怎么注入的?

方案1:如果你的beanA所在的模块,引入了spring的依赖,beanA里面的属性b加Autowired注解,最简单的方法
方案2:如果beanA所在的模块没有引入spring依赖,可以独立于spring的单独的公共依赖,
ImportBeanDefinitionRegistrar注入元数据的时候,就要加入你想要注入的属性,同时beanA提供属性的set方法

img


img


方案三:构造器注入,你要是注入的bean少还行,最大的问题是万一出现循环依赖,这种方案就毫无解决办法