一、前言

从今天开始,重新总结一下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. ABAP重点各种接口技术

    转自 http://www.cnblogs.com/penley/archive/2008/11/12/1332140.html 下面总结一下ABAP中的各种接口技术,因为学习时间不是很长,肯定还不全 ...

  2. Kafka高可用的保证

    zookeeper作为去中心化的集群模式,消费者需要知道现在那些生产者(对于消费者而言,kafka就是生产者)是可用的.    如果没有zookeeper每次消费者在消费之前都去尝试连接生产者测试下是 ...

  3. python基础28 -----python中sockserver模块

    一.Python中的sockserver模块 1.该模块与sock模块不同之处是该模块自动帮我们分装好了一些功能,让我们在编程的时候直接调用这些功能就可以了,节省了编程步骤. 2.如图所示 注释:上图 ...

  4. 2015/7/29 (高开,V形反转,各种指标背离——可惜没买进,填补空缺图形的心理分析)

    1.李大--謝先生℡:早盘决策:如今日再次出现大幅低开  或者盘中大幅下跌可逢低 3成仓位左右分散资金做短线抄底,切记是超短 绝不追高,设置5个点止损.市场有很多名家在谈论3373点即前低点,本人告诉 ...

  5. Hibernate学习---关联关系映射

    关联关系是用到的最多的一种关系,非常重要,在内存中反映为实体关系,映射到DB中主键外键关系,实体间的关联,即对外键的维护,关联关系的发生,即对外键数据的改变. 在这里就不赘述什么是外键什么是主键了. ...

  6. 流量分析系统---kafka集群部署

    1.集群部署的基本流程 Storm上游数据源之Kakfa 下载安装包.解压安装包.修改配置文件.分发安装包.启动集群 2.基础环境准备 安装前的准备工作(zk集群已经部署完毕)  关闭防火墙 chk ...

  7. image has dependent child images

    在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器(哪怕是已经停止的容器),否则无法删除该镜像. 停止容器 # docker stop $(docker ps -a | grep ...

  8. 前端 初级篇(CSS)

    CSS 简介 css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化. 存在方式有三种:元素内联.页面嵌入和外部引入,比较三种方式的优缺点. 语法:styl ...

  9. Loadrunder脚本篇——web_submit_data实现提交post请求

    概述 web_link()和web_url()函数都是页面访问型函数,实现HTTP请求中的GET方法,如果需要实现POST方法,可使用web_submit_form或web_submit_data() ...

  10. 【LeetCode】最大子阵列 Maximum Subarray(贪婪&分治)

    描述: Given an integer array nums, find the contiguous subarray (containing at least one number) which ...