在开发过程中遇到一个问题,就是我想要在运行时动态的创建bean,并且注入到容器中,这种操作应该怎么办,看过一些介绍之后, 发现spring提供了这样的方法

ApplicationContextAware

public interface ApplicationContextAware extends Aware {

	void setApplicationContext(ApplicationContext applicationContext) throws BeansException;

}

实现ApplicationContextAware这个接口的bean,spring会将context传递,在拿到这个context的时候可以获取到beanFactory

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        ConfigurableApplicationContext context = (ConfigurableApplicationContext) applicationContext;
        this.beanFactory = (DefaultListableBeanFactory) context.getBeanFactory();
    }

之后就可以用这个beanFactory来注册自己的bean了

        // 这里就可以注册bean了
        this.beanFactory.registerSingleton("bean的名字", bean);