3.3 spring-meta子元素的使用与解析

1. meta元素的使用

在解析元数据的分析之前,我们先回顾一下 meta属性的使用:

 

<bean id="car" class="test.CarFactoryBean">
    <property name="carInfo" value="超级跑车,400,2000000"/>
  <meta key = "key" value = "values">
</bean>

 

这段代码并不会体现在 CarFactoryBean 的属性当中,而是一个额外的声明,当需要里面的属性时,可以通过BeanDefinition的getAttribute(key);方法获取,

 

  对meta属性解析的代码如下:

 

beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java

 1 public void parseMetaElements(Element ele,
 2             BeanMetadataAttributeAccessor attributeAccessor) {
 3         // 获取当前节点下的所有子元素
 4         NodeList nl = ele.getChildNodes();
 5         for (int i = 0; i < nl.getLength(); i++) {
 6             Node node = nl.item(i);
 7             // 提取meta
 8             if (isCandidateElement(node) && nodeNameEquals(node, META_ELEMENT)) {
 9                 Element metaElement = (Element) node;
10                 String key = metaElement.getAttribute(KEY_ATTRIBUTE);
11                 String value = metaElement.getAttribute(VALUE_ATTRIBUTE);
12                 // 使用 key,value 构造 BeanMetadataAttribute
13                 BeanMetadataAttribute attribute = new BeanMetadataAttribute(key, value);
14                 attribute.setSource(extractSource(metaElement));
15                 // 记录信息
16                 attributeAccessor.addMetadataAttribute(attribute);
17             }
18         }
19     }

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值