概述

作者: JiinYuu | 来源:发表于2021-05-31 19:12 被阅读0次
Version 5.3.7

Spring使得构建Java应用变得简单。它提供了在企业环境中使用Java语言所需的一切,支持Groovy和Kotlin作为JVM上的替代语言,以及根据应用程序的需要创建多种体系结构的灵活性。从Spring Framework 5.1开始,Spring需要JDK 8+ (Java SE 8+),并提供对JDK 11 LTS的开箱即用支持。建议使用Java SE 8 update 60作为Java 8的最小补丁版本,但使用最新的补丁版本也可。

Spring支持广泛的应用程序场景。在大型企业中,应用程序往往存在很长时间,且JDK和应用服务器的升级周期超出了开发人员的控制范围。其他的可能作为一个内置服务器的jar运行,也可能在云环境中。还有一些可能是不需要服务器的独立应用程序(如批处理或集成工作负载)。

Spring是开源的。它有一个庞大而活跃的社区,基于各种不同的真实世界用例提供持续的反馈。这帮助Spring在很长一段时间内成功地发展。

1.我们说的“Spring”指的是什么?

术语“Spring”在不同的上下文中有不同的含义。它可以用来引用Spring Framework项目本身,这是最开始的Spring。随着时间的推移,其他Spring项目也构建在Spring Framework之上。通常,当人们说“Spring”时,他们指的是整个Spring家族。本参考文档关注的是:Spring Framework本身。

Spring Framework分为多个模块。应用程序可以根据需要选择。核心是IOC模块,包括一个配置模型和一个依赖注入机制。除此之外,Spring框架为不同的应用程序架构提供了基础支持,包括消息队列、事务、持久化以及web。它还包括基于Servlet的Spring MVC web框架,以及Spring WebFlux响应式web框架。

2.Spring和Spring Framework的历史

Spring出现于2003年,是为了应对早期J2EE规范的复杂性。虽然有些人认为Java EE和Spring是竞争关系,但Spring实际上是Java EE的补充。Spring编程模型不包含Java EE平台规范;相反,它与Java EE中精心挑选的各个规范集成在一起:

Spring框架还支持Dependency Injection(JSR 330)和Common Annotations(JSR 250)规范,应用程序开发人员可以选择使用这些规范来代替Spring Framework提供的特定于Spring的机制。

从Spring Framework 5.0开始, Spring至少需要Java EE 7(e.g. Servlet 3.1+,JPA 2.1+)- 同时在运行时提供与Java EE 8级别的新API(e.g. Servlet 4.0,JSON Binding API)的开箱即用的集成。这使Spring与Tomcat 8和9、WebSphere 9和JBoss EAP 7完全兼容。

随着时间的推移,Java EE在应用程序开发中的角色已经演变。在Java EE和Spring的早期,创建应用程序是为了部署到应用服务器上。今天,在Spring Boot的帮助下,应用程序以一种对devops和云友好的方式创建,其中嵌入了Servlet容器,更改起来很简单。从Spring Framework 5开始,WebFlux应用程序甚至不直接使用Servlet API,可以运行在不是Servlet容器的服务器上(比如Netty)。

3.设计理念

当你学习一个框架时,不仅要知道它是做什么的,还要知道它遵循什么原则。下面是Spring Framework 的指导原则:

  • 在每个地方都提供选择。Spring允许您尽可能晚地推迟设计决策。例如,您可以通过配置来切换持久化实现,而不需要更改代码。对于许多其他基础设施问题以及与第三方API的集成也是如此。

  • 容纳不同的观点。Spring拥抱灵活性,对于事情应该如何做并不固执己见。它以不同的视角支持广泛的应用程序需求。

  • 保持强大的向后兼容性。Spring的发展经过了精心的管理,在版本之间只有很少的中断性更新。Spring支持精心选择的一系列JDK版本和第三方库,以促进依赖于Spring的应用程序和库的维护。

  • 仔细设计API。Spring团队花了很多心思和时间来设计直观的API,这些API经历了数年时间和数个版本。

  • 为代码质量设置高标准。Spring框架非常强调有意义的、及时的和准确的文档。它是极少拥有干净的代码结构且包之间没有循环依赖的项目之一。

相关文章

  • 概述

    Web 基础 HTTP(HyperText Transfer Protocol,超文本传输协议)。 WWW(Wor...

  • 概述

    计算机网络由若干结点和链路组成。网络间可以通过路由器互连起来,构成的网络称为互连网(internet)。inter...

  • 概述

    资源 主页:http://opencv.org文档:http://docs.opencv.org/master/问...

  • 概述

    1、分类 创建型:Singleton,Builder,Prototype,Abstract Factory,Fac...

  • 概述

    2018年7月26日,是我开始记录我和我男朋友的爱情故事的第一天,也是我和他在一起的第99天。 其实我们刚在一...

  • 概述

    电路交换、分组交换 电路交换由于电话通信系统,分组交换用于网络数据传输。 电路交换两个用户独占一条物理链路;分组交...

  • 概述

    课程大纲: 1、图像的基本构成2、像素读写3、图像像素值统计信息4、像素值数学运算5、图像RGB彩色空间6、色彩空...

  • 概述

    作者认为这套需求过程可以适用于多种软件开发的情况。这套需求过程虽然不是唯一的解决方案,但学习这个过程可以获得很多帮...

  • 概述

    1、计算机网络向用户提供的最重要的功能有两个连通性和共享。2、网络由若干结点和连接这些结点的链路组成。结点可以是计...

  • 概述

    数据结构考虑的要点 算法与模型 数据结构定义 描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中的表示...

网友评论

      本文标题:概述

      本文链接:https://www.haomeiwen.com/subject/bbbbsltx.html