一、前言

从今天开始,重新总结一下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概述的更多相关文章

  1. Spring_总结_02_依赖注入

    一.前言 本文承接上一节:Spring_总结_01_Spring概述 在上一节中,我们了解了Spring的最根本使命.四大原则.六大模块以及Spring的生态. 这一节我们开始了解Spring的第二大 ...

  2. Spring_总结_04_高级配置(二)_条件注解@Conditional

    一.前言 本文承接上一节:Spring_总结_04_高级配置(一)之Profile 在上一节,我们了解到 Profile 为不同环境下使用不同的配置提供了支持,那么Profile到底是如何实现的呢?其 ...

  3. Spring_总结_04_高级配置(一)_Profile

    一.前言 本文承接上一节:Spring_总结_03_装配Bean(四)之导入与混合配置 这一节,来总结一下profile. 我们在开发软件时,通常会进行跨环境部署.而在跨环境部署时,经常会遇到某些环境 ...

  4. 【AR实验室】ARToolKit之概述篇

    0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...

  5. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  6. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  7. .Net 大型分布式基础服务架构横向演变概述

    一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...

  8. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  9. 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

随机推荐

  1. python基础23 -----进程和线程

    一.进程 1.什么是进程? 1.1 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成. 1.2 程序是指进程需要完成那些功能以及如何完成. 1.3 数据集 ...

  2. win7下配置JAVA环境变量

    首先安装JDK,jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008 找到安装目录,并记下,D:\Program Files (x86)\Java\jdk1. ...

  3. 流量监控系统---storm集群配置

    1.集群部署的基本流程 集群部署的流程:下载安装包.解压安装包.修改配置文件.分发安装包.启动集群 注意: 所有的集群上都需要配置hosts vi  /etc/hosts 192.168.223.20 ...

  4. BlockingQueue阻塞队列

    java.util.concurrent包: 1.Excutors类:通过这个类可获得多种线程池的实例 Excutors.newSingleThreadExecutor():获得单线程的Executo ...

  5. java的服务端与客户端通信(2)

    一.Socket连接与HTTP连接   1.1Socket套接字 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信 ...

  6. 【鸟哥的Linux私房菜】笔记2

    Linux的应用 学习资源整理 安装记录 >< 1.Linux的应用: 网络服务器 数据库 学术机构的高效运算任务 嵌入式系统 ... 2.挂载与磁盘分区 学习资源整理 学习 1.书上的网 ...

  7. MySQL数据库基本操作(三)

    MySQL补充: mysql是关系型数据库,关系数据库,是建立在关系模型基础上的数据库,现实世界中的各种实体,以及实体之间的各种联系,均用关系模型(table)来表示.#关系模型就是指二维表格模型,因 ...

  8. JMeter学习(八)JDBC Request

    [step_1]:“测试计划”--(右键)à添加à线程组: [step_2]:选择step_1中添加的线程组—(右键)à添加à配置元件àJDBC Connection Configuration,添加 ...

  9. mybatis 一对多和多对一

      在学习MyBatis3的过程中,文档上面一直在强调一个id的东西!在做这个实验的时候,也因为没有理解清楚id含义而导致一对多的“多”中也只有一条数据.id和result的唯一不同是id表示的结果将 ...

  10. HDFS文件访问权限

    HDFS中的文件访问权限 针对文件和目录,HDFS的权限模式与POSIX非常相似一共提供三类权限模式:只读权限(r).写入权限(w)和可执行权限(x).读取文件或列出目录内容时需要只读权限.写入一个文 ...