一、前言
从今天开始,重新总结一下Spring的相关知识,主要是结合《Spring实战(第四版)》和 《JavaEE开发的颠覆者——SpringBoot实战》这两本书以及官方文档,同时加入自己的一点点点小小小理解,如有不当之处,还请指正。
二、Spring最根本的使命
Spring框架是一个轻量级的企业级开发的一站式解决方案,所谓解决方案就是可以基于Spring解决JavaEE开发的所有问题。
事实上,Spring也确实在不断朝这个方向努力,从官方上列出的Spring产品就可以看出,同时这也反映出 Spring最根本的使命:简化Java开发。
三、Spring框架的四大原则
为了简化Java开发,Spring框架所有功能的设计和实现都基于四大原则:
(1)使用POJO进行轻量级和最小侵入式开发
(2)通过依赖注入和基于接口编程实现松耦合
(3)通过AOP和默认习惯进行声明式编程
(4)使用AOP和模板(template)减少模式化代码
四、Spring 的六大模块
Spring是模块化的,这意味着你可以只使用你需要的 Spring 的模块。
图 1.1 Spring框架由6个定义良好的模块分类组成
1.核心容器(Core Container)
1 | Spring-Core | 核心工具类,Spring其他模块大量使用Spring-Core; |
2 | Spring-Bean | Spring定义Bean的支持; |
3 | Spring-Context | 运行时Spring容器; |
4 | Spring-Context-Support | Spring容器对第三方包的集成支持; |
5 | Spring-Expression | 使用表达式语言在运行时查询和操作对象。 |
2.AOP
1 | Spring-AOP | 基于代理的AOP支持 |
2 | Spring-Aspects | 基于AspectJ的AOP支持 |
3.消息(Messaging)
Spring-Messaging :对消息架构和协议的支持。
4.Web
1 | Spring-Web | 提供基础的Web集成的功能,在Web项目中提供Spring的容器。 |
2 | Spring-Webmvc | 提供基于Servlet的Spring MVC |
3 | Spring-WebSocket | 提供WebSocket |
4 | Spring-Webmvc-Portlet | 提供Portlet环境支持 |
4.数据访问/集成(Data Acess / Integration)
1 | Spring-JDBC | 提供以JDBC访问数据库的支持 |
2 | Spring-TX | 提供编程式和声明式的事务支持 |
3 | Spring-ORM | 提供对对象/关系映射技术的支持 |
4 | Spring-OXM | 提供对对象/XML映射技术的支持 |
5 | Spring-JMS | 提供对JMS的支持 |
五、Spring的生态
1 | Spring Boot | 使用默认开发配置来实现快速开发 |
2 | Spring XD | 用来简化大数据应用开发 |
3 | Spring Cloud | 为分部式系统开发提供工具集 |
4 | Spring Data | 对主流的关系型和NoSQL数据库的支持 |
5 | Spring Integration | 通过消息机制对企业集成模式(EIP)的支持 |
6 | Spring Batch | 简化及优化大量数据的批处理操作 |
7 | Spring Security | 通过认证和授权保护应用 |
8 | Spring HATEOAS | 基于HATEOAS原则简化了REST服务开发 |
9 | Spring Social | 与社交网络API(如Faceook、新浪微博、QQ等)的集成 |
10 | Spring AMQP | 对基于AMQP的消息的支持 |
11 | Spring Mobile | 提供对手机设备检测的功能,给不同的设备返回不同的页面的支持 |
12 | Spring for Android | 主要提供在Android上消费RESTful API的功能 |
13 | Spring Web Flow | 基于Spring MVC提供基于向导流程式的Web应用开发 |
14 | Spring Web Services | 提供了基于协议有限的SOAP/Web服务 |
15 | Spring LDAP | 简化使用LDAP开发 |
16 | Spring Session | 提供一个API及实现来管理用户会话信息 |
六、参考资料
1.《Spring实战(第四版)》
2.《JavaEE开发的颠覆者——SpringBoot实战》