Spring_总结_01_Spring概述
一、前言
从今天开始,重新总结一下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实战》
Spring_总结_01_Spring概述的更多相关文章
- Spring_总结_02_依赖注入
一.前言 本文承接上一节:Spring_总结_01_Spring概述 在上一节中,我们了解了Spring的最根本使命.四大原则.六大模块以及Spring的生态. 这一节我们开始了解Spring的第二大 ...
- Spring_总结_04_高级配置(二)_条件注解@Conditional
一.前言 本文承接上一节:Spring_总结_04_高级配置(一)之Profile 在上一节,我们了解到 Profile 为不同环境下使用不同的配置提供了支持,那么Profile到底是如何实现的呢?其 ...
- Spring_总结_04_高级配置(一)_Profile
一.前言 本文承接上一节:Spring_总结_03_装配Bean(四)之导入与混合配置 这一节,来总结一下profile. 我们在开发软件时,通常会进行跨环境部署.而在跨环境部署时,经常会遇到某些环境 ...
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
随机推荐
- vuejs组件通信
<body> <div id="example"> <father></father> </div> </body ...
- ubuntu ping响应慢的解决(转)
新装ubuntu之后感觉上网老是很慢,ping网站时每次ping指令都需要很久才能有响应,不过网络延迟却正常.后来发现是因为/etc/nsswitch.conf文件中hosts的配置有问题,做如下修改 ...
- 03 Spring框架 bean的属性以及bean前处理和bean后处理
整理了一下之前学习spring框架时候的一点笔记.如有错误欢迎指正,不喜勿喷. 上一节我们给出了三个小demo,具体的流程是这样的: 1.首先在aplicationContext.xml中添加< ...
- Openstak(M版)控制节点安装
#############修改hosts文件 # controller10.0.0.11 controller# compute110.0.0.31 compute1# block110.0.0.41 ...
- Loadrunder之脚本篇——参数化同行取值
select next row 记录选择方式 Same line as,这个选项只有当参数多余一个时才会出现,其作用是根据某一个参数的行号取同一行. 例中的做法如下: 将多个参数存放在一个参数文件中: ...
- MySQL运维问题集锦
1.莫名的慢查询问题.解决思路:http://hidba.org/?spm=5176.153233.793262.6.d75LDx&p=1119
- SQL Server获取数据库的当前连接状态
SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID]=(SELECT [DBID] FROM [Master].[dbo].[SYSDATA ...
- Linux文件系统十问---深入理解文件存储方式(rhel6.5,EXT4)【转】
本文转载自:https://blog.csdn.net/tongyijia/article/details/52832236 前几天在红黑联盟上看了一篇博客<Linux文件系统十问—深入理解文件 ...
- Nginx的访问日志配置信息详解
Nginx的访问日志可以让我们知晓用户的地址,网站的那些部分最受欢迎,以及用户浏览时间等.Nginx会把每个用户的访问日志记录到指定的日志文件中. Nginx主要有两个参数来控制 log_format ...
- 广西邀请赛 B+K
B是一个看起来很KDT的题 但是因为KDT是n^1.5的所以t 而且因为KDT需要周期性的重建所以复杂度会更高 因为只有51种颜色 所以想当然的就去想了状态压缩 因为询问的区间范围 x一定是从1开 ...