DefaultLifecycleProcessor.java 文件源码

java
阅读 31 收藏 0 点赞 0 评论 0

项目:my-spring-cache-redis 作者:
/**
 * Retrieve all applicable Lifecycle beans: all singletons that have already been created,
 * as well as all SmartLifecycle beans (even if they are marked as lazy-init).
 * @return the Map of applicable beans, with bean names as keys and bean instances as values
 */
protected Map<String, Lifecycle> getLifecycleBeans() {
    Map<String, Lifecycle> beans = new LinkedHashMap<String, Lifecycle>();
    String[] beanNames = this.beanFactory.getBeanNamesForType(Lifecycle.class, false, false);
    for (String beanName : beanNames) {
        String beanNameToRegister = BeanFactoryUtils.transformedBeanName(beanName);
        boolean isFactoryBean = this.beanFactory.isFactoryBean(beanNameToRegister);
        String beanNameToCheck = (isFactoryBean ? BeanFactory.FACTORY_BEAN_PREFIX + beanName : beanName);
        if ((this.beanFactory.containsSingleton(beanNameToRegister) &&
                (!isFactoryBean || Lifecycle.class.isAssignableFrom(this.beanFactory.getType(beanNameToCheck)))) ||
                SmartLifecycle.class.isAssignableFrom(this.beanFactory.getType(beanNameToCheck))) {
            Lifecycle bean = this.beanFactory.getBean(beanNameToCheck, Lifecycle.class);
            if (bean != this) {
                beans.put(beanNameToRegister, bean);
            }
        }
    }
    return beans;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号