SpringFramework详解(一)

Spring Framework4(我目前参照的版本是4.5.2)主要有20个模块组成,这些模块主要组成Core Container、Data Access/Integration、Web、AOP、Instrumentation、Message和Test几部分(见下图,取自Spring官方文档)
SpringFramework详解(一)_第1张图片
下面具体介绍每个部分的具体功能和组成模块:

1.Core Container

由spring-core、spring-beans、spring-context、spring-context-support和spring-expression这几个模块组成。

  • spring-core&spring-beans模块是整个框架的基础部分,主要特性是Ioc容器和DI,而Ioc容器的的核心类是BeanFactory接口,它是应用工厂模式的实现。
  • spring-context模块是基于Core和Beans模块构建的,它继承了Beans模块的特性并增加了对国际化(例如使用资源包)、事件传递、资源加载和透明创建上下文(例如被servlet容器创建),同时也支持了Java EE的例如EJB、JMX和远程处理等的特性。其中ApplicationContext接口是整个模块的关键点。而spring-context-support模块提供了将第三方功能集成进Spring 应用上下文中,例如caching (EhCache, Guava, JCache), mailing (JavaMail), scheduling (CommonJ, Quartz) and template engines (FreeMarker, JasperReports, Velocity)。
  • spring-expression模块为运行时查询和操纵对象图提供了强大的EL(基于JSP 2.1规范中定义的unified EL),支持存取属性值、实行分配、方法调用、访问数组及集合的内容、逻辑和算术运算、命名变量以及在Spring Ioc容器中通过名称查找对象。

2.AOP & Intrumentation

由spring-aop、spring-aspects、spring-instrument和spring-instrument-tomcat模块组成。

  • spring-aop模块通过使用aop提供的方法拦截器和切点来解耦具体业务代码和通用业务功能。其中spring-aspects模块是Spring在切面编程上对AspectJ的集成。
  • spring-instrument模块提供了对特定应用服务器classloader和class instrumentation的支持,其中spring-instrument-tomcat模块提供了Spring对tomcat服务器的代理检测。

3.Messaging

包括spring-message模块是Spring集成项目(例如 Message, MessageChannel, MessageHandler等)为基于消息传递的应用服务的关键抽象,包含一系列的从消息映射到方法的注解,类似于SpringMVC基于编程模型的注解。

4.Data Access/Integration

数据访问和集成层由JDBC、ORM、OXM、JMS和Transaction模块组成。

  • spring-jdbc模块提供了jdbc抽象层,抽离了繁琐的jdbc代码和针对特定数据库的错误代码。
  • spring-tx模块对实现了特定接口的类提供了编程式和声明式事务管理,并且对所有的POJO类都支持这种特性。
  • spring-orm模块集成了通用对象关系映射接口,包括JPA、JDO和Hibernate等。使用spring-orm模块可以使这些orm框架可以和Spring提供的其他所有特性联合使用,例如前边提到的简单声明式事务管理特性。
  • spring-oxm模块提供了支持Object/XML 映射实现的抽象层,这些oxm实现包括JAXB, Castor, XMLBeans, JiBX and XStream。
  • spring-jms模块包括生产和消费消息的特性。从Spring-Framework 4.1开始提供了和spring-message模块集成的支持。

5.Web

Web层由spring-web、spring-webmvc、spring-websocket和spring-webmvc-portlet组成。

  • spring-web模块提供了面向Web的基础功能的集成,例如多文件上传和使用Servlet监听Ioc容器的初始化特性,和面向Web的应用上下文。同时也包含了HTTP客户端以及Spring远程调用中和Web相关的部分。
  • spring-webmvc(web-servlet)包含了spring mvc的实现和为web应用提供的REST 服务的实现。它使领域模型和web表单完全分离,同时也可以集成其它spring-framework的特性。
  • spring-webmvc-portlet(web-portlet)提供了在Portlet环境中使用的mvc实现,并反映了spring-webmvc模块的功能。

6.Test

spring-test模块通过JUnit和TestNG提供了单元测试和集成测试。它提供了一致性加载和缓存Spring上下文,也提供了用于单独测试使用的模拟对象。


<注>1.内容翻译来源自Spring Framework Reference Documentation
2.译者能力有限,以下为找到的较为popular的翻译版本http://blog.csdn.net/tangtong1/article/details/51326887

你可能感兴趣的:(Spring,Java,Spring)