2013-05-21 18 views

回答

1

如果我正確地理解了你想刪除在運行時在ctx中定義的bean,我將使用BeanDefinitionRegistry來完成此操作,BeanDefinitionRegistry有一個removeBean()方法,它將bean名稱作爲參數。

BeanDefinitionRegistry factory = 
    (BeanDefinitionRegistry) applicationCtx.getAutowireCapableBeanFactory(); 

然後

((DefaultListableBeanFactory) beanFactory).destroySingleton("myBean"); 

編輯

參考http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/beans/factory/support/BeanDefinitionRegistry.html#removeBeanDefinition%28java.lang.String%29