程序员

Spring简介及历史,企业级应用框架

2020-02-18  本文已影响0人  javap

知识要点:

Spring简介

Spring体系结构

Spring5新特性

Spring简介

Spring 在起源可以追溯到 Rod Johnson 于2002年出版的《Expert One-to-One J2EE Design and Development》一书 。在这本书中,Rod 展示了他的 interface21 框架,他为自己的应用编写了这一框架。这一框架被发布到开源世界后,组成了现在我们所知的 Spring 框架的基础。
Spring 在早期的 beta 和发布备选版本阶段进行得很迅速,第一个正式版本 1.0 在 2004 年 3 月 24 日 发布。Spring 是指一个用于构造 Java 应用程序的轻量级框架,这句话两层意思:
首先,你可以采用 Spring 来构造任何程序,这和Apache Struts 这样的框架不同,仅仅被限定于
WEB 应用
其次,“轻量级”并不意味着类的数量很少,或者发行包尺寸很小。实际上,指的是Spring哲学原则
——最少的侵入。

演进历史

Spring 0.9

这是该框架第一个公开发布的版本,以Exper One-on-One:J2EE Design and Development一书 为基础,提供了Bean配置基础、AOP支持、JDBC抽象框架、抽象事务支持等。该版本没有官方参考文档,但可以在SourceForge上找到源代码和文档。

Spring 1.x

Spring发布的第一个带有官方参考文档(从Spring 1.1.1开始)的版本。主要由七个模块组成


Spring 2.x
Spring 2.5
Spring 3.x

Spring 基于Java5的第一个版本,旨在充分利用Java5的功能,如泛型、可变参数和其他语言改进。该版本引入了基于Java的@Configuration模型。


Spring 4.x

Spring第一个完全支持Java 8的版本。虽然仍然可以使用较旧版本的Java,但Java SE6已经提出了最低版本要求。启用的类和方法已经被删除,但模块组织几乎相同。


Spring 5.x

Spring体系结构

Core Container(核心容器)

该模块主要包含Core、Beans、Context和SpEL模块。其中Core和Beans是整个框架最基础的部分,提供IOC和依赖注入特性。这里最重要的概念就是BeanFactory,提供了以Factory模式的实现来消除对程序性单例模式。

AOP and Instrumentation

提供符合AOP Alliance标准的面向切面编程的实现,可以让你定义如方法拦截器和切点,从而降低程序之间的耦合性。

Messaging

该模块具有来自Spring Integration项目的关键抽象,如Message,MessageChannel,MessageHandler等。它们构成基于消息的应用程序的基础。该模块还包括一组注释,用于将消息映射到方法,类似于基于Spring MVC注释的编程模型。

Data Access/Integration

Web

Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供上下文支持。该模块包含Web、WebMVC、Web Socket和Web-Porlet模块。

Test

该模块支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。

Spring模块依赖关系图

Spring5新特性

JDK 7和8的支持

核心特性

JDK8的增强:
访问Resuouce时提供getFile或和isFile防御式抽象
有效的方法参数访问基于Java 8反射增强
在Spring核心接口中增加了声明default方法的支持一贯使用JDK7 Charset和StandardCharsets的增强
兼容JDK9

核心容器

SpringWebFlux

测试方面的改进

上一篇 下一篇

猜你喜欢

热点阅读