Spring动态bean的创建取决于其他bean

时间:2018-01-31 08:16:01

标签: java spring spring-boot spring-bean

有没有办法动态创建依赖于另一个bean的bean? 我有一个Spring Boot应用程序,它将configuration.xml文件加载到配置bean中。我想在尝试创建依赖于该配置bean的新动态bean时加载配置。

我到目前为止尝试的是实现BeanDefinitionRegistryPostProcessor,但在我尝试创建新GenericBeanDefinition的那一刻,配置尚未加载。这是我的代码:

@Component
public class MyPostProcessor implements BeanDefinitionRegistryPostProcessor {


    @Autowired
    private Configuration configuration;


     @Override
     public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
            List<Cars> cars= configuration.getCars();
            for (Car car: cars) {
                  Motor motor = car.getMotor();
                  GenericBeanDefinition genericBeanDefinition = new GenericBeanDefinition();
                  genericBeanDefinition.setBeanClass(DynamicBean.class);
                  genericBeanDefinition.getConstructorArgumentValues().addGenericArgumentValue(motor);
                  ((BeanDefinitionRegistry) beanFactory).registerBeanDefinition(car.getId(), genericBeanDefinition);
                    }
     }

我在这里得到NullPointerExceptionList<Cars> cars= configuration.getCars();

感谢。

0 个答案:

没有答案