Spring容器高级主题
来源:互联网 发布:批发商软件 编辑:程序博客网 时间:2024/05/01 01:20
1.ResourceLodaer从Spring配置文件中加载Spring配置信息,并 使用Resource表示这个配置文件的资源。
- BeanDefinitionReader读取Resource所指向的配置文件的资源,然后解析该配置文件。配置文件的每个<bean>元素被解析成一个BeanDefinition对象,并保存到BeanDefinitionRegistry中。
- 容器扫描BeanDefinitionRegistry中的BeanDefinition,并对其进行加工处理。
- Spring容器取出加工好的BeanDefinition并调用InstantionStrategy着手进行Bean的实例化工作。
- 在实例化Bean时,BeanWrapper对Bean进行封装,并完成属性的设置工作。
BeanDefinition
BeanDefinition是配置文件中<bean>在Spring容器中的内部表示。
Spring将<bean>转换成BeanDefinition的表示,并将这些BeanDefinition注册到BeanDefinitionRegistry中。
InstantionStrategy
InstantionStrategy负责根据BeanDefinition的对象创造一个Bean的实例,相当于执行java中new的操作,但不会参与Bean属性的设置工作。
该策略通常利用Bean实现类的默认构造函数,带参数的构造函数或者工厂方法进行Bean的实例化操作。
BeanWrapper
BeanWrapper相当于一个代理器,Spring通过BeanWrapper完成Bean属性的填充。
BeanWrapper的实现类BeanWrapperImp具有三重身份:
(1)Bean包裹器
(2)属性访问器
(3)属性编辑注册表
属性编辑器:
用于将Bean在配置文件中的字面值类型转换成相应的内部类型。
任何实现java.beans.PropertyEditor接口都是属性编辑器。
使用外部属性文件
Spring提供了一个PropertyPlaceholderConfigurer,它能够使Bean在配置时引用外部属性文件。
在 外部属性文件中,属性名与属性值成对出现。
如:userName=zk; userId=0902140408;
//引用外部属性文件
<beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
P:location="外部属性文件的位置"
P:fileEncoding="utf-8">
//通过属性名引用属性值
<beanid="" class="zk.com.Class"
P:name="${userName}"
P:id="${userId}"/>
使用<context:property-placeholder>引用属性文件
如:<context:property-placeholder location=“文件所在位置”/>
基于注解或者java类配置中引用外部属性
在xml文件中引用外部属性文件之后,可以使用@Value()引用属性。
如:
@Value("${userId}")
Private String id;
在属性文件内部,属性之间可以相互引用。
- Spring容器高级主题
- Spring容器高级主题
- Spring容器高级主题
- 4.spring容器高级主题
- Spring4学习:Spring容器高级主题
- 第三篇 小曹学spring--Spring容器高级主题
- spring3.x第五章 Spring容器高级主题
- Spring3.X学习笔记4-Spring容器高级主题
- Spring容器高级主题(Spring 3.x企业应用开发实战第五章)学习总结
- Spring容器高级主题(精通Spring+4.x++企业应用开发实战 五)
- Spring IoC容器高级特性
- spring学习笔记:ioc容器高级特性
- Spring框架学习【IoC容器高级特性】
- 高级主题
- DWR高级主题之DWR与spring集成
- DWR高级主题之DWR与spring集成
- 《Spring攻略》 第2章 高级Spring IoC容器
- Spring IoC之高级应用--使bean感知容器
- centos 7 docker基础安装
- qcom platform 子系统(5)
- ajax传参结合spring 3.X总结
- mongodb 中 scoped_ptr.hpp:99: T* boost::scoped_ptr<T>::operator->() const [with T = mongo::AtomicWord
- Java学习笔记(二)
- Spring容器高级主题
- 新手关于ScrollView和ListView冲突问题解决办法
- ANDROID 开发常用的框架、工具、API最全集合
- Chapter.13 Copy Constructor
- 你注意过那些就在身边的「男神女神」们吗?
- qcom platform 子系统(6)
- Object-c KVC的使用
- opensuse下firefox配置jre插件
- centos7 base repo