Spring是分层的Java SE/EE应用一站式的轻量开源框架,以 反转控制(Inverse of Control,IoC)、面向切面编程(Aspect
Oriented Programming,AOP)为内核,提供了展现层Spring MVC、持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术。此外。Spring整合了众多著名第三方框架和类库。

1、发展史--Rod Johnson
  • Spring的框架首次在2003年6月的Apache 2.0的使用许可中公布;
  • 第一个具有里程碑意义的版本号是2004年3月公布的1.0;
  • 2004年9月和2005年3月先后又有重要的版本号面世。
  • Spring Framework 首个版本号是在 2004 年公布的,其后包括几个重大版本号改进。Spring 2.0 提供了 XML 命名空间和 AspectJ 支持;Spring 2.5 包括注解驱动的配置;Spring 3.0 引入加强的 Java 5+ 基础和 @configuration 模型。

  • 而 Spring 4.0 是最新的主要版本号,这是首个全然支持 Java 8 特性的框架,该版本号最低要求 Java SE 6 的支持。

    删除了废弃的方法和类。


2、长处


  1. 方便解耦,简化开发;
  2. AOP编程的支持;
  3. 声明式事物的支持;
  4. 方便程序測试。
  5. 方便集成各种优秀框架。
  6. 减少Java EE API使用难度。
  7. 源代码设计精妙、结构清晰,Java技术的最佳时间范例。


3、Spring 4.0 体系结构图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

可对照旧体系结构,例如以下:

4、Spring 4.0的新特性:
  • Java 8诸多特性的支持;
  • 使用Groovy DSL定义外部的Bean配置,这类似于XML Bean声明。可是语法更为简洁。使用Groovy还可以在启动代码中直接嵌入Bean的声明。
  • 核心容器功能的改进(支持泛型依赖注入;使用meta-annoation方式定义Annotation时, 该Annotation可以訪问源Annotation的部分属性,以更加方便的定制自己想要的Annotation;Bean依赖注入到Map和List。Array中, 即提供了一种方式获取到某个类型的全部Bean,当注入到Map中时,
    Key为Bean的名字,value为Bean实例。

  • Web开发改进(添加了@RestController annotation、AsyncRestTemplate类;Spring4.0基于Servlet3.0+版本号开发;为Spring MVC应用添加了Timezone的支持,能够在RequestContext获取,设置TimeZone信息。Spring还提供Datetime的转换功能;提供了
    WebSocket, SockJS, and STOMP Messaging的支持;支持STOMP Message协议)
  • 測试框架改进 (差点儿全部spring-test模块下的annotation都能够做元annoation, 开发人员就能够更方便得定制自己的annotation,以增强代码表现力和降低多个Test之间的反复代码。添加了一种更灵活的ActiveProfiles的决定方式;加入了SocketUtils类帮忙扫描本地机器上的可用Socketport;org.springframework.mock.web包下的Mock类都与Servlet
    3.0兼容了;删除了全部废弃的方法和类)
  • 參考:http://ningandjiao.iteye.com/blog/1993481

5、结构阐述
IoC
将类和类之间的依赖从代码中脱离,用配置的方式进行依赖关系描写叙述,由IOC容器负责依赖类之间的创建、拼接、管理、获取等。


1.1 Spring概述的更多相关文章

  1. Spring概述

    layout: post title: Spring概述 tags: [Java,Spring,IOC,AOP] --- Spring是一个开源的轻量级Java SE(Java 标准版本)/Java ...

  2. 基础知识(09) -- Spring 概述

    Spring概述-------------------------------------------------------------------------主要内容: 1.Spring是什么 2 ...

  3. Java开发工程师(Web方向) - 04.Spring框架 - 第1章.Spring概述

    第1章.Spring概述 Spring概述 The Spring Framework is a lightweight solution and a potential one-stop-shop f ...

  4. 1.1 Spring 概述

    1.1 Spring 概述 1.1.1 Spring 的简史 第一阶段:xml配置 Spring 1.x时代使用xml配置Bean 第二阶段:注解配置 Spring2.x  Spring 提供了声明B ...

  5. Spring概述学习笔记

    1.Spring概述 Spring致力于J2EE应用的各种解决方案,而不仅仅专注于某一层的方案. 可以说,Spring是企业应用开发的一站式选择,他贯穿于表现层.业务层.持久层. Spring并不想取 ...

  6. 第01章 Spring概述

    第01章 Spring概述 1.Spring概述 ①Spring是一个开源框架 ②Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能.同样的 ...

  7. Spring MVC系列-(1) Spring概述

    1. Spring概述 本章主要介绍Spring中的体系结构和常见概念,比如bean.控制反转(Inverse of Control,IoC)等. 1.1 体系结构 Spring 框架提供约 20 个 ...

  8. Spring系列之初识Spring Spring概述

    初始Spring 啥是Spring? 下面这个就是Spring Spring当然不是上面那个Spring,Spring之所以命名为Spring是因为这个开源的轻量级的开源框架的出现给软件行业带来了春天 ...

  9. 1、Spring教程之Spring概述

    1.Spring概述 简介 Spring : 春天 --->给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架. 2004年3月24 ...

  10. Spring学习笔记之Spring概述

    概述   Spring是一个java应用最广的开源框架,它是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Deve ...

随机推荐

  1. pycharm 编写前端代码一些小技巧

    <!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8&qu ...

  2. 2019年,Linux运维行业的趋势,跟不上学习就被淘汰

    运维行业经历了多年的发展,已经有了很大的变化,最开始的机房.网线.人肉,到现在一步步的自动化.智能化.容器化,运维人员的职业技能要求越来越高,稍不注意就可能被淘汰. 今天马小哥就来盘点一下2019年运 ...

  3. JavaSE-22 反射

    学习要点 反射概念 反射的应用 反射概述 1  反射机制 定义 Java反射机制是指在程序在运行状态中,动态获取信息以及动态调用对象方法的功能. Java反射的动态性质:运行时生成对象实例.运行期间调 ...

  4. No-4.变量的基本使用

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量  ...

  5. 搭建分布式yarn

    1.在前一篇准备好Hadoop的基础上配置,链接 http://www.cnblogs.com/cici20166/p/6266367.html 2./etc/profile 配置环境变量 expor ...

  6. Linux下安装SVN,仓库创建,用户权限管理

    Exported from Notepad++           Linux下安装SVN,仓库创建,用户权限管理 1.SVN安装 Ubuntu系统下安装:sudoapt-getinstallsubv ...

  7. sort cmp函数的写法 (特判排序 二级排序)

    特判排序: 看看以下cmp写法,猜想作用: 该函数作用就是“将正数升序排列, 负数排到最后” 我认为cmp函数的一个特性就是, 如果return false, 那么函数就会将他们互换位置, retur ...

  8. POJ1013称硬币【枚举】

    Counterfeit Dollar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 52474   Accepted: 16 ...

  9. clip-path实现loading圆饼旋转效果以及其他方法

    一.loading效果 二.clip-path css中的剪切clip-path属性是CSS Masking模块的一部分. 矩形 clip-path:inset(top right bottom le ...

  10. C51 原创电子琴 (蜂鸣器/计时器/中断/矩阵按键)

    需求分析 用C51的16个矩阵按键当作两个八度的琴键 按下时发出相应音调的声音,静态数码管显示相应音符的数字. 为了解锁更多曲目,两个多的琴键设计成#4,显示时加上小数点 下图分别为1和#4的显示,其 ...