美文网首页
Spring 经典代码收集

Spring 经典代码收集

作者: 码而优则仕 | 来源:发表于2020-11-21 21:32 被阅读0次

检查我指定依赖的 Bean 是否有指定依赖于我的Bean

//beanName 当前Bean,dependentBeanName 当前Bean 指定依赖的Bean,alreadySeen 已经检查过没有依赖循环的BeanName集合
private boolean isDependent(String beanName, String dependentBeanName, @Nullable Set<String> alreadySeen) {
        if (alreadySeen != null && alreadySeen.contains(beanName)) {
            return false;
        }
        String canonicalName = canonicalName(beanName);
        Set<String> dependentBeans = this.dependentBeanMap.get(canonicalName);
        if (dependentBeans == null) {
            return false;
        }
        if (dependentBeans.contains(dependentBeanName)) {
            return true;
        }
        for (String transitiveDependency : dependentBeans) {
            if (alreadySeen == null) {
                alreadySeen = new HashSet<>();
            }
            alreadySeen.add(beanName);
            if (isDependent(transitiveDependency, dependentBeanName, alreadySeen)) {
                return true;
            }
        }
        return false;
    }```

相关文章

网友评论

      本文标题:Spring 经典代码收集

      本文链接:https://www.haomeiwen.com/subject/hqriuktx.html