spring框架由组织成约20个模块的功能。,如下图:
一、Core Container
The Core Container 由 spring-core
, spring-beans
, spring-context
, spring-context-support
, spring-expression
(Spring Expression Language)模块组成。
在这一部分需要引入spring-core
, spring-beans
, spring-context
, spring-context-support
, spring-expression相对应的架包
。
其中,spring-core
,和spring-beans提供框架的基本组成部分,包括IOC和依赖注入功能。
BeanFactory是一个复杂的工厂模式的实现。ApplicationContext接口是context模块的焦点。Spring-context-support提供支持集成常见的第三方库,特别是缓存和调度。
Spring-expression模块提供了一个强大的表达式语言,用于在运行时查询和处理对象图。该语言支持设置和获取属性值;属性赋值,方法调用,访问数组的内容,收集和索引
器,逻辑和算术运算,命名变量,并从Spring的IOC容器的名字对象检索,它也支持列表选择和投影以及常见的列表聚合。
二、Aop and Instrumentation
Spring-aspects模块提供了一个与AspectJ的整合。(这一部分一般不常用,可以不导入)
Spring-aop模块提供了一个Aop aspect-oriented编程实施允许自己定义。
Spring-instrument,Spring-instrument-tomcat(这一部分一般不常用,可以不导入)
在这一部分需要导入spring-aop相对应的架包
三、Massaging Spring-massaging(这一部分一般不常用,可以不导入)
四、Data Access/Intergration
Data Access/Intergration层由JDBC,ORM,OXM,IMS和业务模块组成。
spring-jdbc提供了一个抽象的JDBC层,不需要进行繁琐的JDBC编码和数据库供应商特定错误代码解析。
spring-tx支持实施特殊的接口和你所有的POJO类的编程和声明式事务管理。
spring-orm提供了流行的对象关系映射的API集成层包括JPA,Hibernate。
spring-oxm提供了一个object/xml映射实现的抽象层。
spring-jms-------java消息服务与Spring-massaging对应(这一部分一般不常用,可以不导入)
在这一部分需要导入spring-jdbc,spring-tx,spring-orm,spring-oxm相对应的架包
五、web
由spring-web,spring-webmvc和spring-websocket组成。
spring-web提供了基于面向web集成功能,他也包含了一个HTTP客户端和spring的远程支持网站相关的部分。
spring-webmvc包含spring mvc和REST web services实施。
在这一部分需要导入spring-web,spring-webmvc相对应的架包
六、test
Spring-test支持spring组建junit或TestNG的集成测试和单元测试。它提供了一致spring ApplicationContext的加载和上下文的缓存。他还提供了可以用来测试代码隔离的模拟对象。
在这一部分需要导入Spring-test相对应的架包