我想在运行时注册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?
}
}
这个演员总是安全吗?
答案 0 :(得分:1)
目前(春季4.1),只有ApplicationContext
的实施没有实现ConfigurableApplicationContext
界面:org.springframework.test.web.servlet.setup.StubWebApplicationContext
来自spring-test
所以我认为你是相对保存,需要注意测试。
但仅仅因为目前没有有意义的实施,这并不意味着未来的版本没有变化,或者有人/某些框架已经实施了它!