Spring可以潜在为你所有的企业应用提供一站式的开发,Spring是模块化的,你可以挑选适合你的模块,而不需要引入其他的模块。下图是Spring的模块框架图:
接下来会给出每个模块的详情说明:
Spring框架提供了大约20个模块。核心容器(Core Container):
- Spring的核心容器是由:Core、Beans、Context、和Expression Language几个模块组成:
- Core:这个模块提供了框架的基础部分,包含了IoC和依赖注入特性;
- Bean:该模块提供了BeanFactory,它是工厂模式的一个复杂实现;
- Context:该模块是建立在由Core和Beans两个模块提供的坚实基础上;
- SpEL:该模块提供了一个功能强大的在运行时查询和操纵对象图的表达式语言;
数据访问/集成(Data Access/Integration):
数据访问/集成层是由:JDBC、ORM、OXM、JMS和Transaction几个模块组成:
- JDBC:该模块提供了消除编写乏味的与JDBC相关的代码的JDBC抽象层;
- ORM:该模块为流行的对象-关系映射APIs提供了集成层,这类APIs包括:JPA、JDO、Hibernate和iBatis;
- OXM:该模块为JAXB、Castor、XMLBeans、JiBX和XStream提供了一个支持Object/XML映射的实现;
- JMS:该模块包含生产和消费消息的特性;
- Transaction:该模块为实现特定接口的类和所有的POJOs支持编程和声明事物管理;
Web:
Web层由:Web、Web-MVC、Web-Socket和Web-Portlet几个模块组成:
- Web:该模块提供了基本的面向web(web-oriented)的集成特性,诸如多部件的文件上传(file-upload)功能,利用servlet监听器来初始化IoC容器和面向web的应用上下文。
- Web-MVC:该模块包含为web应用的Spring的模型-视图-控制器(MVC)的实现。
- Web-Socket:该模块提供了基于WebSocket(WebSocket-based)的支持,在web应用程序中实现客户端和服务器端的双向通信(two-way communication)。
- Web-Portlet:该模块提供了用于portlet环境的MVC实现和Web-Servlet模块功能的镜像。
其他模块:
- AOP:该模块提供了面向切面的编程实现,允许你定义方法拦截器和横切点来解耦代码。
- Aspects:该模块提供了与AspectJ的集成,AspectJ是另一个强大的、成熟的面向切面的编程框架。
- Instrumentation:该模块提供了class的工具支持和class加载的实现,被用在某些应用服务器中。
- Messaging:该模块提供了对WebSocket子协议STOMP的支持。它也为路由和处理来自WebSocket客户端消息提供了一个注解编程模型。
- Test:该模块为使用JUnit和TestNG框架测试Spring组件提供了支持。