Spring框架是一个轻量级的企业开发的一站式解决方案。所谓解决方案就是基于Sping解决Java EE开发的所有问题。Spring框架主要提供了IoC容器,AOP,数据访问,Web开发,消息,测试等相关技术支持。

Sping使用简单的POJO(Plain Old Java Object,即无任何限制的普通Java对象)来进行企业级开发。每一个被Spring管理的Java对象都称之为Bean;而Spring提供了一个IoC容器用来初始化对象,解决对象间的依赖管理和对象的使用。

1,Spring模块

Spring是模块化的,这意味着你可以只使用你需要的Spring模块。

核心容器(Core Container)

Spring-Core: 核心工具类,Spring其他模块大量使用Spring-Core;
Spring-Bean:Spring定义的Bean支持;
Spring-Context:运行时Spring容器;
Spring-Context-Support:Spring容器对第三方包的集成支持;
Spring-Expression:使用表达式语言在运行时查询和操作对象。

AOP

Spring-AOP:基于代理的AOP支持;
Spring-Aspect:基于AspectJ的AOP支持;

消息(Messaging)

Spring-Messaging:对消息架构和协议的支持

Web

Spring-Web:提供基础的Web集成功能,在Web项目中提供Spring容器;
Spring-Webmvc:提供基于Servlet的Spring MVC;
Spring-WebSocket:提供WebSocket功能;
Spring-Webmvc-Portlet:提供Portket环境支持;

数据访问/集成(Data Access/Intergration)

Spring-JDBC:提供以JDBC访问数据库的支持;
Spring-TX: 提供编程式和声明式的事物支持;
Spring-ORM:提供对对象/关系映射技术的支持;
Spring-JMS:提供对JMS的支持。

2,Spring生态

Spring Boot: 使用默认开发配置来实现快速开发。
Spring XD:用来简化大数据开发。
Spring Cloud:为分布式系统开发提供工具集。
Spring Data:对主流的关系型和NoSQL数据库的支持。
Spring Integration:通过消息机制对企业集成模式(EIP)的支持。
Spring Batch:简化及优化大量数据的批处理工作。
Spring Security:通过认证和授权保护应用。
Spring HATEOAS:基于HATEOAS原则简化REST服务开发。
Spring Social:与社交网络API(如Facebook,新浪微博等)的集成。
Spring AMQP:对基于AMQP的消息的支持。
Spring Mobile:提供对手机设备检测功能,给不同的设备返回不同的页面的支持。
Spring for Android:主要提供在Android上消费RESTful API的功能。
Spring Web Flow:基于Spring MVC提供基于向导流程式的Web应用开发。
Spring Web Service:提供了基于协议有限的SOAP/Web服务。
Spring LDAP:简化使用LDAP开发。
Spring Session:提供一个API及实现来管理用户会话信息。