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数据库 ...
随机推荐
- python基础23 -----进程和线程
一.进程 1.什么是进程? 1.1 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成. 1.2 程序是指进程需要完成那些功能以及如何完成. 1.3 数据集 ...
- win7下配置JAVA环境变量
首先安装JDK,jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008 找到安装目录,并记下,D:\Program Files (x86)\Java\jdk1. ...
- 流量监控系统---storm集群配置
1.集群部署的基本流程 集群部署的流程:下载安装包.解压安装包.修改配置文件.分发安装包.启动集群 注意: 所有的集群上都需要配置hosts vi /etc/hosts 192.168.223.20 ...
- BlockingQueue阻塞队列
java.util.concurrent包: 1.Excutors类:通过这个类可获得多种线程池的实例 Excutors.newSingleThreadExecutor():获得单线程的Executo ...
- java的服务端与客户端通信(2)
一.Socket连接与HTTP连接 1.1Socket套接字 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信 ...
- 【鸟哥的Linux私房菜】笔记2
Linux的应用 学习资源整理 安装记录 >< 1.Linux的应用: 网络服务器 数据库 学术机构的高效运算任务 嵌入式系统 ... 2.挂载与磁盘分区 学习资源整理 学习 1.书上的网 ...
- MySQL数据库基本操作(三)
MySQL补充: mysql是关系型数据库,关系数据库,是建立在关系模型基础上的数据库,现实世界中的各种实体,以及实体之间的各种联系,均用关系模型(table)来表示.#关系模型就是指二维表格模型,因 ...
- JMeter学习(八)JDBC Request
[step_1]:“测试计划”--(右键)à添加à线程组: [step_2]:选择step_1中添加的线程组—(右键)à添加à配置元件àJDBC Connection Configuration,添加 ...
- mybatis 一对多和多对一
在学习MyBatis3的过程中,文档上面一直在强调一个id的东西!在做这个实验的时候,也因为没有理解清楚id含义而导致一对多的“多”中也只有一条数据.id和result的唯一不同是id表示的结果将 ...
- HDFS文件访问权限
HDFS中的文件访问权限 针对文件和目录,HDFS的权限模式与POSIX非常相似一共提供三类权限模式:只读权限(r).写入权限(w)和可执行权限(x).读取文件或列出目录内容时需要只读权限.写入一个文 ...