Spring Framework包含了大約20個模塊,被分成一下Core Container, Data Access/Integration, Web, AOP (Aspect Oriented Programming), Instrumentation, Messaging和Test這6個部分,每個模塊都有一個jar包,instrumentation模塊有兩個jar,圖中還缺少spring-context-support模塊。
-
Core Container
核心部分包含:spring-core,spring-beans,spring-context,spring-context-support,spring-expression (Spring Expression Language) 模塊。- spring-core:Spring框架基本的核心工具類,提供了IoC和DI最基本實現
- spring-beans:Bean工廠與bean的裝配,配置文件訪問等
- spring-context:spring的context上下文即IoC容器
- spring-expression:spring表達式支持
表達式語言 Spring Expression Language - spring-context-support:spring額外支持包,如郵件服務、視圖解析等
依賴關系:可以在maven倉庫查詢依賴關系http://mvnrepository.com
Core Container -
AOP and Instrumentation
模塊包含:spring-aop,spring-aspects,spring-instrument,spring-instrument-tomcat- spring-aop:面向切面編程
- spring-aspects:集成AspectJ
- spring-instrument:向服務器提供類級的工具支持和classloader的實現
- spring-instrument-tomcat:針對tomcat的instrument實現
依賴關系:Spring Aspects,spring-aop
-
Messaging
模塊包含:spring-messaging
從spring4開始的模塊- spring-messaging:用于構建基于消息的應用程序
依賴關系: Spring Messaging
- spring-messaging:用于構建基于消息的應用程序
-
Data Access/Integration
模塊包含:spring-jdbc,spring-tx,spring-orm,spring-oxm,spring-jms,spring-messaging- spring-jdbc:jdbc支持
- spring-tx:事務控制
- spring-orm:對象關系映射API,集成JPA,JDO,Hibernate等orm框架
- spring-oxm:對象XML映射
- spring-jms:java消息服務,從spring4.1開始jms集成了spring-messaging
-
Web
模塊包含:spring-web,spring-webmvc,spring-websocket,spring-webmvc-portlet- spring-web:基礎的web功能,包括文件上傳等
- spring-webmvc:mvc實現
- spring-websocket:spring4開始,為web應用提供的高效通信工具
- spring-webmvc-portlet:基于portlet的mvc實現
-
Test
模塊包含:spring-test- spring-test:spring測試,提供junit與mock測試功能
使用spring
spring所有的groupId都是
org.springframework
,只是artifactId不同
根據spring的依賴關系,普通的java工程中需要引用一個dependency
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>xxxxxxxxx</version>
</dependency>
如果是web工程只需配置
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>xxxxxxxxx</version>
</dependency>