《Spring技术黑幕》学习笔记1——IoC容器体系结构
《Spring技术内幕》学习笔记1——IoC容器体系结构3.Spring IoC容器的UML类图:?view plainpublic?class?XmlBean
《Spring技术内幕》学习笔记1——IoC容器体系结构
3.Spring IoC容器的UML类图:
?
view plain
- public?class?XmlBeanFactory?extends?DefaultListableBeanFactory?{??
- //读取XML形式的Bean定义,然后解析XML生成IoC管理的Bean??????
- private?final?XmlBeanDefinitionReader?reader?=?new?XmlBeanDefinitionReader(this);??
- ????//Resouce是Spring中用来封装IO操作的接口??
- ????public?XmlBeanFactory(Resource?resource)?throws?BeansException?{??
- ????????this(resource,?null);??
- ????}??
- //调用父类的构造方法,同时调用loadBeanDefinitions方法从指定XML文件加载Bean定义??
- ????public?XmlBeanFactory(Resource?resource,?BeanFactory?parentBeanFactory)?throws?BeansException?{??
- ????????super(parentBeanFactory);??
- ????????this.reader.loadBeanDefinitions(resource);??
- ????}??
- }???
?
?
view plain
- //创建IoC容器管理的Bean的xml配置文件,即定位资源??
- ClassPathResource?resource?=?new?ClassPathResource(“beans.xml”);??
- //创建BeanFactory??
- DefaultListableBeanFactory?factory?=?new?DefaultListableBeanFactory?();??
- //创键Bean定义读取器??
- XmlBeanDefinitionReader?reader?=?new?XmlBeanDefinitionReader(factory);??
- //使用Bean定义读取器读入Bean配置信息,即载入配置??
- reader.loadBeanDefinitions(resource);??
?
?
6.ApplicationContext:
view plain
- public?interface?ApplicationContext?extends?ListableBeanFactory,?HierarchicalBeanFactory,??
- ????????MessageSource,?ApplicationEventPublisher,?ResourcePatternResolver?{??
- ????//获取ApplicationContext的id??
- ????String?getId();??
- ????//获取ApplicationContext的displayName??
- ????String?getDisplayName();??
- ????//获取ApplicationContext第一次加载的时间戳??
- ????long?getStartupDate();??
- ????//获取ApplicationContext容器的父容器??
- ????ApplicationContext?getParent();??
- ????//获取自动装配功能的BeanFactory??
- ????AutowireCapableBeanFactory?getAutowireCapableBeanFactory()?throws?IllegalStateException;??
- }??
?
?
?
(2).ApplicationContext的特性:
ApplicationContext是Spring提供的一个高级的IoC容器,它除了能够提供IoC容器的基本功能外,还为用户提供了以下的附加服务:
a.支持不同的信息源:
ApplicationContext扩展了MessageSource接口,可以支持国际化的实现。
b.访问资源:
ApplicationContext继承了DefaultResourceLoader的子类,通过ResourceLoader和Resource的支持,ApplicationContext可以加载不同地方的Bean定义资源文件,尤其可以从不同IO途径获取Bean定义信息。可以使用户程序灵活地定义Bean定义信息。
c.支持应用事件:
ApplicationContext继承了ApplicationEventPublisher接口,在程序上下文中引入了事件机制,这些事件和Bean生命周期的结合为Bean的过来提供了便利。
?
?
?
以上的这些图先对Spring IoC容器的类体系结构做一个宏观的认识,由于平时比较忙,以后抽空再逐步补充IoC容器初始化和依赖注入相关的内容。
?
?
转载:
?
http://blog.csdn.net/chjttony/article/details/6248682