Spring注册bean在运行时

时间:2015-03-14 17:02:53

标签: java spring

我想在运行时注册spring bean,所以我构建了这个类:

public class SpringBeanRegister implements BeanRegister, ApplicationContextAware {

    private ConfigurableApplicationContext context;

    public void registerBean(Object object) {
        ConfigurableListableBeanFactory factory = context.getBeanFactory();
        factory.registerSingleton("beanName", object);
    }

    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.context = (ConfigurableApplicationContext) applicationContext; // -- safe?
    } 

}

这个演员总是安全吗?

1 个答案:

答案 0 :(得分:1)

目前(春季4.1),只有ApplicationContext的实施没有实现ConfigurableApplicationContext界面:org.springframework.test.web.servlet.setup.StubWebApplicationContext来自spring-test

所以我认为你是相对保存,需要注意测试。

但仅仅因为目前没有有意义的实施,这并不意味着未来的版本没有变化,或者有人/某些框架已经实施了它!