一、spring概览

下图展示了整个spring的基本架构:

二、核心容器部分

在上图的最底部的Test模块的上层,展示了spring的核心容器,包括了四个模块:Beans,Core,Context和 Expression Language。它们各自的功能如下:

  • Core模块是spring框架的核心部分,这从名称也可以看出,Core嘛。它主要提供了包括了IoC和依赖注入等后面会介绍的特性。
  • Beans模块主要提供了BeanFactory功能,通用从名字可以看出,这是一个工厂模式的实现。
  • Context顾名思义,上下文的意思,在Core和Beans的基础上,通过Context模块我们可以对对象进行定义和配置,
  • Expression Language模块通过提供一种表达式语言使得程序可以在运行时查询和操作对象图。

三、数据访问/集成部分

这部分主要有如图所示的JDBC, ORM, OXM, JMS 和 Transaction这几个模块组成:

  • JDBC模块提供了一个jdbc的抽象层,它使得我们更便捷的使用jdbc技术,帮我们封装了一些jdbc中每次都要 重复编码的部分,例如:打开关闭数据库连接等操作。
  • ORM模块提供了对一些流行的对象关系映射(object-relational mapping )接口,如JPA, JDO, Hibernate, 和iBatis等的集成。
  • OXM模块提供了一个抽象层,用来支持JAXB, Castor, XMLBeans, JiBX 和 XStream等的Object/XML 映射接口的实现。
  • JMS(Java Messaging Service )模块包括了对消息处理的功能。
  • Transaction模块对于那些实现了特定接口的类,提供了包括编码式和声明式两种方式的事务管理。

四、Web部分

web部分包括了:Web, Web-Servlet,Web-Struts, 和Web-Portlet这几个模块。

  • Web模块提供了面向web的集成功能。 比如多部分文件上传功能,通过servlet listeners和application context来初始化 IoC容器。
  • Web-Servlet模块包含了Spring对于web应用的MVC(model-view-controller )的实现。
  • Web-Struts模块包含了对于在Spring应用内集成一个经典的Struts web层的支持类。(注意:这个支持在spring3.0. 已经弃用了。你可以考虑将应用迁移到Struts2+Spring集成或者Spring MVC这样的解决方案)
  • Web-Portlet提供了用于portlet环境下的MVC实现,它其实是Web-Servlet模块的复制。

五、其它部分

接下来看剩下的部分:AOP, Aspects, Instrumentation, Web和Test模块,这些模块具体如下:

  • AOP模块提供了面向切片编程的实现,它可以让你定义方法拦截器和切点,从而降低了功能代码之间的耦合度。
  • Aspects模块提供对AspectJ集成的支持。它是另外一个强大而成熟的面向切面编程框架。
  • Instrumentation模块供了对类的instrumentation的支持和classloader实现,使得可以在特定的应用服务器上使用。
  • Test模块支持使用测试框架JUnit和TestNG对Spring组件进行测试。

总结

简单了解了下Spring框架的基本情况。参考:http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/overview.html

##文档信息