标签:
Spring - 4.2.3
// name,alias存储容器 ConcurrentHashMap <alias,name>
private final Map<String, String> aliasMap = new ConcurrentHashMap<String, String>(16);
// 注册alias别名
public void registerAlias(String name, String alias)
1. 检查 name,alias 是否含有内容,否则抛出异常不能为空
Assert.hasText(name, "‘name‘ must not be empty");
Assert.hasText(alias, "‘alias‘ must not be empty");
2.
(1) alias与name相等,aliasMap.remove(alias)
(2) alias与name不想等,判断如果alias存储的name和将要存储的name,alias相同,不需要再注册
3.循环检查是否是一个直接或者间接的别名引用 规则是:{a=b,c=d,e=f}错误引用:{a=b,b=a}或{a=b,b=c,c=a},网上有的解释为:a是该链的除头部之外的某一节点就返回true.我的理解就是a->b->a,a->b->c->a类似这种间接引用的形式即为true,其实思想转换以后是一样的.
// 移除一个别名
public void removeAlias(String alias)
// 获取别名
public String[] getAliases(String name)
1.获取name的所有别名,{b=a,c=a,d=a,e=b} a的alias有 b,c,d,e
// 看不太懂
public void resolveAliases(StringValueResolver valueResolver)
SimpleAliasRegistry implements AliasRegistry
标签:
原文地址:http://www.cnblogs.com/queenns/p/5980526.html