SimpleAliasRegistry implements AliasRegistry
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的更多相关文章
- DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements SingletonBeanRegistry
// 用于内部标记的空的单例对象(不支持null)protected static final Object NULL_OBJECT = new Object(); // 缓存单例对象根据beanNa ...
- Spring之28:AliasRegistry&SimpleAliasRegistry
AliasRegistry接口定义了alias的基本操作. package org.springframework.core; public interface AliasRegistry { //对 ...
- Spring源码分析——BeanFactory体系之抽象类、类分析(一)
上一篇介绍了BeanFactory体系的所有接口——Spring源码分析——BeanFactory体系之接口详细分析,本篇就接着介绍BeanFactory体系的抽象类和接口. 一.BeanFactor ...
- Spring IOC 低级容器解析
1.IOC是什么 IOC-Inversion of Control,即"控制反转",不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不 ...
- spring源码分析(一)
一.首先分析AliasRegistry接口. 1.Alias别名,Registry注册表,AliasRegistry别名注册表接口. 2.共有四个方法,注册别名,判断是否别名,获取别名数组,移除别名. ...
- 6.1-AliasRegistry
AliasRegistry //AliasRegistry package org.springframework.core; /** * Common interface for managing ...
- Spring 之 BeanFactory 源码 - 抽象/类 分析
BeanFactory的基本类体系结构(类为主):
- DefaultSingletonBeanRegistry
DefaultSingletonBeanRegistry 这是 DefaultSingletonBeanRegistry 类的体系结构,由一个类一个责任的原则: AliasRegistry : 提供别 ...
- Spring 学习记录6 BeanFactory(2)
主题 除了Spring 学习记录5 BeanFactory 里写的几个接口外,BeanFactory的实现类还实现了一些其他接口,这篇文章主要介绍这些接口和实现类. 结构 DefaultListabl ...
随机推荐
- Python相关书籍推荐
Python基础教程(第2版 修订版) 作 者 [挪] Magnus Lie Hetland 著:司维,曾军崴,谭颖华 译 出 版 社 人民邮电出版社 出版时间 2014-06-01 版 ...
- wxPython安装错误问题:No module named wx
今天心血来潮安装wxPython,本机win7,且已经安装Python,版本为2.7.3,然后IDE使用的PyCharm,然后wxPython下载的版本为:wxPython2.8-win32-unic ...
- C++多态分析(polymorphisn)
前言 借着这次学校的生产实习来回顾下C++的多态,这里讨论下C++的多态以及实现原理.我都是在QT下使用C++的,就直接在QT下进行演示了 多态介绍 面向对象语言中最核心的几个理念就是:封装.继承.多 ...
- hive-mysql安装配置
默认情况下,hive的元数据信息存储在内置的Derby数据中.Facebook将hive元数据存储在关系数据库 1.安装好mysql ,sudo apt-get install mysql-serve ...
- HDU5734:Acperience(方差)
题意: 给出n个数xi,确定一个值α,使得Σ(xi-α)^2的值最小. 分析: 可以猜想是方差,不懂得可以去方差了解一下. 那么α即为∑(xi)/n,然后要注意的是转化为分数,首先我们不能用小数转分数 ...
- nginx配置pathinfo支持,最佳方案 - chunyu
〇. 前言 pathinfo有两个,1 pathinfo()函数,2 $_SERVER['PATH_INFO'].pathinfo()是php的库函数,原生支持不需要nginx配置,$_SERVER[ ...
- MEAN Stack:创建RESTful web service
本文在个人博客上的地址为URL,欢迎品尝. 前段时间做了DTREE项目中的前后端数据存储功能,在原有的ngController上进行HTTP请求,后端接受到请求后再存储到mongoDB上.现将学习所得 ...
- openstack配置增加
控制节点nova配置增加 vif_plugging_is_fatal = Falsevif_plugging_timeout = 0scheduler_default_filters = AllHos ...
- Linux下的vi编辑命令中查找·替换详解
一.查找 查找命令 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串 使用了查找命令之后,使 ...
- Spring AOP + AspectJ in XML configuration example
For those don't like annotation or using JDK 1.4, you can use AspectJ in XML based instead. Review l ...