Spring源码(一):管理别名Alias不再麻烦[AliasRegistry]

Spring源码(一):管理别名Alias不再麻烦[AliasRegistry]


一· 概述

我们会经常碰到一个别名管理的问题,比如一个域名有多个IP,又有多个别域名,而别域名又有很多与之对应的别域名,如此循环。如何快速地找到对应关系,是一件比较麻烦的事情。

在Spring的bean管理容器中,也存在这样类似的问题,因为bean可以取很多别名,别名又可以有别名等。为此,Spring专门提供了一个接口AliasRegistry来实现此功能。

二· 接口说明

AliasRegistry定义如下,其中必须也仅有一个名字为本名(canonical name),其他都为别名。

上面的接口很简单,直接看函数名就知道功能,就不做赘述了。Spring内部也提供了一个实现类SimpleAliasRegistry,其内部就是通过Map实现的。

三· 快速使用

可以直接使用SimpleAliasRegistry来管理别名。一个本名可以注册多个别名,别名也可以注册多个另外的别名。

    注意1: 注册别名,不能出现循环,不然会报错 注意2: 不能将不同的名字叫同一个别名,后者将覆盖掉前者

执行结果如下:

神枪手本名是张三
张三的别名有:神枪手,狗二
猎人本名是张三
张三的别名有:神枪手,猎人,狗二,全蛋,富士康质检员
经验分享 程序员 微信小程序 职场和发展