您的位置:首页 > 编程语言 > Java开发

spring源码解析之bean的子元素

2017-07-22 09:42 330 查看
看spring源码也有几天了,这个时候才想起来写博客,惭愧啊。今天看的是解析bean的子元素,就我个人而言,部分子元素确实用的不多

1.meta  元数据,当需要使用里面的信息是用key获取值,通过BeanDefinition的getAttribute(key)获取值,spring解析的时候通过BeanMetadataAttribute类来承载解析出来的key和value,解析方法在BeanDefinitionParserDelegate类中 ,parseMetaElements

2.lookup-method  被称为获取器注入,它是把一个方法声明为返回某种类型的bean,其实这个bean在配置文件中配置的,此方法可以用在有些插拔功能上,解除程序依赖,可以在方法里声明一个抽象方法,因为返回的bean在配置文件中配置的,所以抽象方法足以。解析方法为parseLookupOverrideSubElements(),解析过后通过LookupOverride类承载解析出来的信息

3.replacer-method  方法替换  在运行时用新的方法替换现有的方法  可以动态的返回实体bean,还能动态的更改原有方法的逻辑,更改逻辑等可以新建一个类实现MethodReplacer接口 ,MethodReplacer接口里只有一个方法

Object reimplement(Object var1, Method var2, Object[] var3) throws Throwable;

解析的方法是parseReplaceMethodSubElements,解析后通过ReplaceOverride类承载

以上这三个笔者确实用的不多啊,但是接下来这个constructor-arg相信不会陌生,配置好后,对于spring是怎么解析他的呢,其实是通过parseConstructorArgElements()实现的,

遍历所有子元素,提取constructor-arg的子元素,然后进行解析,但是具体的解析方法又是通过另外一个方法实现的,parseConstructorArgElements()提取constructor-arg的子

元素,真正解析的在parseConstructorArgElement方法中


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring 源码