一、spring架构
Spring IOC :包含了最为基本的IOC容器备案factory的接口与实现,它是spring框架的核心
Spring AOP: 它是spring的另一个核心,是围绕着AOP的增强功能,集成了AspectJ作为AOP的一个特定实现,同时还在JVM动态代理/CGLIB的基础上,视线里声明式事务处理,就是通过AOP集成的。
Spring MVC:支持MVC模式的web应用开发。
Spring JDBC/Spring ORM:Spring对JDBC封装了一层,对关系数据库处理的API,同时支持集成ORM工具,如Hibernate、iBatis等。
Spring事务处理:通过Spring AOP实现自身功能增强的典型模块。Spring把企业应用开发中事务处理的主要功能抽象出来,并且简洁地通过AOP的切面增强实现了声明式事务处理的功能。
Spring远端调用:实现应用的解耦,分布式地部署应用,从而提高系统整体的性能,需要用到spring的远端调用。Spring为应用屏蔽了各种通信和调用细节的实现。
Spring应用:主要提供了许多Spring应用与其他技术实现的相关接口,比如与各种J2EE实现规范的接口等。
二、Spring接口设计
1、从接口BeanFactory到HierarchicalBeanFactory,再到ConfigurableBeanFactory,是一条主要的BeanFactory设计路径。
2、第二条设计主线是,以ApplicationContext应用上下文接口为核心的接口设计,这里涉及的主要接口设计有,
从BeanFactory到ListableBeanFactory,再到ApplicationContext,再到我们常用的WebApplicationContext或者ConfigurableApplicationContext接口。
HierarchicalBeanFactory使BeanFactory具备了双亲Ioc容器的管理功能,ConfigurableBeanFactory定义一些对BeanFactory的配置功能。MessageSource支持国际化的实现,ResourceLoader支持从不同来源加载spring的bean。ApplicationEventPublisher支持应用事件,为Bean的生命周期管理提供便利。
三、从XmlBeanFactory的实现来看Ioc容器的建立步骤
1、创建IOC配置文件的抽象资源,这个抽象资源包含了BeanDefinition的定义信息。
2、创建一个BeanFactory,这里使用DefaultListableBeanFactory。
3、创建一个载入BeanDefinition的读取器,这里使用XmlBeanDefinitionReader来载入XML文件形式的BeanDefinition,通过一个回调配置给BeanFactory。
4、从定义好的资源位置读入配置信息,具体的解析过程由XmlBeanDefinitionReader来完成。