Spring本可以设计成为一个“一站式”的框架(fat jar、uber jar),但是Spring的开发者没有这么做,而是以模块化
的方式开发Spring,这样的话用户就可以根据实际情况引入需要的Spring模块,而不必引入其他模块。本节我们将会
介绍Spring中所有的模块。
概览
Spring4.1.6包括20个模块,如下:
Core Container(核心容器)
core container包括core模块、beans模块、context模块、SpEL表达式模块,作用分别如下:
- core:提供框架基础功能,如字节码操作工具等
- beans:早期Spring IOC容器的实现类BeanFactory就包含在该模块中
- context:构建在core模块和beans模块之上,主要提供了Spring IOC容器ApplicationContext
- SpEL:表达式语言,可以在运行期查询和操作对象图。
Data Access/Integration(数据获取/集成)
Spring的数据获取/集成主要包括jdbc模块、orm模块、oxm模块、jms模块、transactions模块。功能如下:
- jdbc:提供了一个jdbc的抽象层,把用户从编写繁杂的jdbc代码中解放出来,并可方便的管理事务。
- orm:提供了跟主流orm(对象关系映射)框架集成的功能,如hibernate、jdo等,如下:
- oxm:提供了跟主流oxm(对象、XML映射)框架继承的功能,如xstream等,如下:
- jms:提供了产生和消费jms消息的功能
- transaction:事务处理功能,支持声明式事务
Web
spring的web主要包括web模块、webmvc模块、webmvc portlet模块、websocket模块。功能如下:
- web:提供web的基础功能,如文件上传等
- webmvc:即spring-mvc,spring的mvc框架的实现
- webmvc portlet:spring的门户组件包
- websocket:spring针对websocket(html5中进行定义,实现http双向通信)的实现包
其他
除了上述列出的模块外,还有test模块、aop模块、aspects模块、Instrumentation模块、messaging模块。如下:
- aop:spring中提供面向切面编程的模块
- aspects:提供了跟AspectJ的继承。AspectJ是另外一个非常牛的AOP框架
- Instrumentation:可用于Spring容器中对象的监控
- messaging:消息服务。支持stomp协议
- test:测试模块,可使用jUnit或TestNG单元测试框架测试spring组件。
时间: 2024-08-02 06:06:41