概述

作者: 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框架非常强调有意义的、及时的和准确的文档。它是极少拥有干净的代码结构且包之间没有循环依赖的项目之一。

    相关文章

      网友评论

          本文标题:概述

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