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

这个问题看到网上很多回复的。

我习惯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 }

 

转载于:https://www.cnblogs.com/itxuexiwang/p/6396342.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值