|
|
|
@ -217,13 +217,15 @@ public class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Map<String, Lifecycle> getLifecycleBeans() { |
|
|
|
private Map<String, Lifecycle> getLifecycleBeans() { |
|
|
|
String[] beanNames = this.beanFactory.getBeanNamesForType(Lifecycle.class, false, false); |
|
|
|
|
|
|
|
Map<String, Lifecycle> beans = new LinkedHashMap<String, Lifecycle>(); |
|
|
|
Map<String, Lifecycle> beans = new LinkedHashMap<String, Lifecycle>(); |
|
|
|
for (String beanName : beanNames) { |
|
|
|
Map<String, SmartLifecycle> smartLifecycles = |
|
|
|
if (this.beanFactory.containsSingleton(beanName) || |
|
|
|
this.beanFactory.getBeansOfType(SmartLifecycle.class, false, true); |
|
|
|
SmartLifecycle.class.isAssignableFrom(this.beanFactory.getType(beanName))) { |
|
|
|
beans.putAll(smartLifecycles); |
|
|
|
Object bean = this.beanFactory.getBean(beanName); |
|
|
|
String[] singletonNames = this.beanFactory.getSingletonNames(); |
|
|
|
if (!this.equals(bean)) { |
|
|
|
for (String beanName : singletonNames) { |
|
|
|
|
|
|
|
if (!beans.containsKey(beanName)) { |
|
|
|
|
|
|
|
Object bean = this.beanFactory.getSingleton(beanName); |
|
|
|
|
|
|
|
if (bean instanceof Lifecycle && !this.equals(bean)) { |
|
|
|
beans.put(beanName, (Lifecycle) bean); |
|
|
|
beans.put(beanName, (Lifecycle) bean); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|