您的位置:首页 > 移动开发

Spring中applicationContext.xml的bean里的id和name属性区别

2017-02-14 10:01 507 查看
这个问题看到网上很多回复的。

我习惯id 从来没有想过还有name,最近看spring源代码分析 看到这一段。

我猜想 可能设计的人兼容各种的习惯 现在大家都都习惯了 id

结项代码如下



看完下面代码 就明白 网上说name 中 第一个是bean 剩下是别名

1     public BeanDefinitionHolder parseBeanDefinitionElement(Element ele, BeanDefinition containingBean) {
获得id
2         String id = ele.getAttribute(ID_ATTRIBUTE);
获得name
3         String nameAttr = ele.getAttribute(NAME_ATTRIBUTE);
4 等于别名数组
5         List<String> aliases = new ArrayList<String>();
6         if (StringUtils.hasLength(nameAttr)) {
7             String[] nameArr = StringUtils.tokenizeToStringArray(nameAttr, BEAN_NAME_DELIMITERS); //分割符号 ,;
8             aliases.addAll(Arrays.asList(nameArr));
9         }
10
11         String beanName = id;
在别名数组剔除第一个
12         if (!StringUtils.hasText(beanName) && !aliases.isEmpty()) {
13             beanName = aliases.remove(0);
14             if (logger.isDebugEnabled()) {
15                 logger.debug("No XML 'id' specified - using '" + beanName +
16                         "' as bean name and " + aliases + " as aliases");
17             }
18         }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: