List of usage examples for org.springframework.beans.factory.support DefaultListableBeanFactory destroyScopedBean
@Override public void destroyScopedBean(String beanName)
From source file:com.helpinput.spring.registinerceptor.AbstractBeanRegistInterceptor.java
@Override public boolean afterRemove(Class<?> clz, String beanName, String scope, DefaultListableBeanFactory dlbf) { if (getCondition(clz)) { String refBeanName = beanName + beanNameSuffix; if (application_scope.equals(scope)) dlbf.destroyScopedBean(refBeanName); else if (singleton_scope.equals(scope)) dlbf.destroySingleton(refBeanName); dlbf.removeBeanDefinition(refBeanName); return true; }/* w ww . j av a 2s. c om*/ return false; }
From source file:com.helpinput.spring.BeanRegister.java
public static boolean removeBean(DefaultListableBeanFactory dlbf, BeanInfo beanInfo, String beanName) { BeanDefinition bd = null;/*from w ww .j a v a 2 s . c o m*/ if (!Utils.hasLength(beanName)) if (beanInfo != null) beanName = beanInfo.beanName; if (!Utils.hasLength(beanName)) return false; try { bd = dlbf.getBeanDefinition(beanName); if (bd != null) { //?bean? relativePath?, ?? // BeanRegister.runOnUnregisger(beanName, dlbf); String scope = bd.getScope(); /** * bean?application,singletonbeansession?view? flash? * requestbean, * session,view,flash,requestbeanapplicationbean * application,singletonbean * scopebeanbeanbean */ if (application_scope.equals(scope)) dlbf.destroyScopedBean(beanName); else if (singleton_scope.equals(scope)) dlbf.destroySingleton(beanName); dlbf.removeBeanDefinition(beanName); if (beanInfo != null && beanInfo.beanClass != null && PropertyEditor.class.isAssignableFrom(beanInfo.beanClass)) { ContextHolder.refreshers.remover(beanName); } List<BeanRegistInterceptor> interceptors = ContextHolder.beanRegistIntercpterHolder.getList(); if (Utils.hasLength(interceptors)) { for (BeanRegistInterceptor beanRegistInterceptor : interceptors) { if (beanRegistInterceptor.afterRemove(beanInfo.beanClass, beanName, scope, dlbf)) break; } } logRegist(Info.Removed, (String) bd.getAttribute(relativePath), beanInfo.beanName, scope); return true; } } catch (NoSuchBeanDefinitionException e) { //? BeanDefinition,????beanInfo, return true; } return false; }