1.1 Spring概述

    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 体系结构图:

可对比旧体系结构,如下:

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类帮忙扫描本地机器上的可用Socket端口;org.springframework.mock.web包下的Mock类都与Servlet
    3.0兼容了;删除了所有废弃的方法和类)
  • 参考:http://ningandjiao.iteye.com/blog/1993481

5、结构阐述

IoC

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

时间: 2024-12-21 16:32:00

1.1 Spring概述的相关文章

《Spring 3.0就这么简单》——第1章 快速入门 1.1 Spring概述

第1章 快速入门 本章通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速进入Spring Web应用的世界.实例应用按持久层.业务层和展现层进行组织,从底层DAO程序到Web展现程序逐层演进,一步步地搭建起一个完整的实例.通过本章的学习,读者可以独立完成一个典型的基于Spring的Web应用. 本章主要内容: Spring 概述 用户登录实例介绍 基于 Spring JDBC 的持久层实现 基于 Spring 声明式事务的业务层实现 基于 Spring MV

Spring学习(一)Spring概述

现在很多的企业级项目中基本上都会用到了Spring框架,那么为什么会出现Spring,Spring是什么?这次的博文我主要为大家简单介绍一下Spring. Java EE优缺点 我们都知道在2003年Spring兴起之前,企业普遍使用J2EE技术来开发企业级应用,为什么用J2EE呢?主要原因有以下几个: 1.Java本身的跨平台能力,可移植性强 2.J2EE服务器内置了大量的容器服务,比如事务服务.JNDI服务和连接池服务等等 3.程序员可以基于Java EE API进行企业开发并部署到应用中

java-框架-spring概述

Spring作为现在最优秀的框架之一,已被广泛的使用,51CTO也曾经针对Spring框架中的JDBC应用做过报道.本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的设计理念,有那几个核心组件?为什么需要这些组件?它们又是如何结合在一起构成Spring的骨骼架构?Spring的AOP特性又是如何利用这些基础的骨骼架构来工作的?Spring中又使用了那些设计模式来完成它的这种设计的?它的这种 设计理念对对我们以后的软件设计有何启示?本文将详细解答这些问题. Spr

Spring 概述

Spring 是完全面向接口的设计,降低程序耦合性,主要是事务控制并创建bean实例对象.在ssh整合时,充当黏合剂的作用.IOC(Inversionof Control) 控制反转/依赖注入,又称DI(DependencyInjection) (依赖注入)    IOC的作用:产生对象实例,所以它是基于工厂设计模式的   Spring IOC的注入      通过属性进行注入,通过构造函数进行注入,      注入对象数组     注入List集合        注入Map集合      注入

Spring学习(二) IoC详解

上次的博客深入浅出Spring(一)Spring概述中,我给大家简单介绍了一下Spring相关概念.重点是这么一句:Spring是为了解决企业应用开发的复杂性而创建的一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.在这句话中重点有两个,一个是IoC,另一个是AOP.今天我们讲第一个IoC. IoC概念 控制反转(Inversion of Control)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题. 它还有一个名字叫做依赖注入(Dependency Injection)

69个经典Spring面试题和答案

Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯. 2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB. 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们. 面向切面的

69道Spring面试题和答案

目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯. 2. 使用Spring框架的好处是什么? 轻量:S

《Spring 3.0就这么简单》——导读

前言 Spring作为Java领域的第一开源项目,从其诞生到现在已有10个年头.10年的时间对于计算机业界来说是非常漫长的,在热闹的Java开源领域,无数个开源产品喧嚣登场,但又很快被人们淡忘.能够像Spring一样历经时间洗礼而历久弥香的开源框架真的是寥若星辰,Spring无疑是Java开源世界的一朵奇葩. 在Spring发展的10年中,不但Spring自身不断发展壮大,各种基于Spring的子项目也如雨后春笋一样成长起来,Spring的社区亦蓬勃发展.Rod就和他的骨干团队成立了Spring

Spring的控制反转和依赖注入

Spring的官网:https://spring.io/  Struts与Hibernate可以做什么事? Struts, Mvc中控制层解决方案 可以进行请求数据自动封装.类型转换.文件上传.效验- Hibernate, 持久层的解决方案: 可以做到, 把对象保存到数据库, 从数据库中取出的是对象. 传统的开发模式 基于mvc模式进行项目开发: 基于mvc的项目框架结构: Entity / dao / service / action 为什么引入Spring:  思考:     1. 对象创建