Spring框架文档(一 )

原文英文链接:

https://docs.spring.io/spring/docs/5.2.3.BUILD-SNAPSHOT/spring-framework-reference/overview.html#overview

https://github.com/spring-projects/spring-framework

(由于鄙人英文水平以及技术能力有限,可能无法做到 信达雅,如有不当之处,烦请在评论区指出,非常感谢!)

 

Spring框架概述

版本5.2.3.BUILD-SNAPSHOT
 

    Spring使创建Java企业应用程序变得很容易。它提供了在企业环境中使用Java语言所需要的一切,支持Groovy和Kotlin作为JVM上的替代语言,并根据应用程序的需要灵活地创建多种体系结构。从Spring Framework 5.1开始,Spring需要JDK 8+ (Java SE 8+),并提供对JDK 11 LTS(译者注:Long-Term-Support)的开箱即用支持。建议将Java SE 8 update 60作为Java 8的最低补丁版本,但通常建议使用最新的补丁版本。

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

Spring是开源的。它拥有一个大型且活跃的社区,该社区基于各种各样的实际用例提供持续的反馈。这帮助Spring在很长一段时间内成功地发展。

 

1. What We Mean by "Spring"

“spring”在不同的上下文中有不同的意思。它可以用来引用Spring框架项目本身,这是一切的起点。随着时间的推移,其他Spring项目已经构建在Spring框架之上。通常,当人们说“Spring”时,他们指的是整个项目家族。本参考文档主要关注基础:Spring框架本身。

Spring框架分为多个模块。应用程序可以选择需要哪些模块。core 是核心容器的模块,包括配置模块和依赖项注入机制。除此之外,Spring框架还为不同的应用程序体系结构提供基础支持,包括消息传递、事务数据和持久化以及web。它还包括基于servlet的Spring MVC web框架,以及与最新的的Spring WebFlux reactive web框架。

关于模块的说明:Spring的框架jar允许部署到JDK 9的模块路径(“Jigsaw”)。为了在支持jigsaw的应用程序中使用,Spring Framework 5 jar附带了“自动模块名”清单条目,它定义了稳定的语言级模块名(“Spring”)。核心”、“春天。独立于jar工件名称(jar遵循相同的命名模式,使用“-”而不是“。“spring核心”和“spring上下文”)。当然,Spring的框架jar在JDK 8和9+的类路径上都能很好地工作。

关于模块的注释:Spring的框架jar允许部署到JDK 9的模块路径(“Jigsaw”)。为了在支持Jigsaw的应用程序中使用,Spring Framework 5 jar附带了“自动模块名称”清单条目,这些清单条目定义了与jar工件无关的稳定语言级别的模块名称(“ spring.core”,“ spring.context”等)。他们和其所在的jar包名字是不一样的(jar包名字用 "-" 分割而不是 ","  ,如“ spring-core”,“ spring-context”等),当然spring框架的jar包可以在JDK8和JDK9+环境中正常运行。

 

2. History of Spring and the Spring Framework

Spring是在2003年作为对早期J2EE规范复杂性的响应而出现的。虽然有些人认为Java EE和Spring是竞争对手,但实际上,Spring是Java EE的补充。Spring编程模型虽然没有遵循Java EE平台规范,但是它和如下的J2EE规范紧密结合:

Spring框架还支持依赖项注入(JSR 330)和通用注释(JSR 250)规范,应用程序开发人员可以选择使用这些规范来代替Spring框架提供的特定于Spring的机制。

  • 从Spring Framework 5.0开始,Spring至少需要Java EE 7以上(例如Servlet 3.1 +,JPA 2.1+),同时提供与Java EE 8中的较新API的运行时的支持(例如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)上运行。

    spring继续创新和发展。除了Spring Framework,还有其他项目,例如Spring Boot,Spring Security,Spring Data,Spring Cloud,Spring Batch等。重要的是要记住,每个项目都有其自己的源代码存储库,问题跟踪机制和发版计划。有关Spring项目的完整列表,请参见spring.io/projects

     

    3. Design Philosophy

    当您了解框架时,不仅要了解框架的作用,而且要遵循的原则很重要。以下是Spring框架的指导原则:

    提供每个级别的选择。Spring使您可以尽可能推迟设计决策。例如,您可以在不更改代码的情况下通过配置切换持久性提供程序。对于许多其他基础架构问题以及与第三方API的集成也是如此。

    适应不同的观点。Spring拥有灵活性,并且对如何完成工作一无所知。它从不同的角度支持广泛的应用程序需求。

    保持强大的向后兼容性。对Spring的演变进行了精心管理,以使各个版本之间几乎没有重大更改。Spring支持精心选择的JDK版本和第三方库,以方便维护依赖于Spring的应用程序和库。

    关心API设计。Spring团队投入了大量的思想和时间来制作直观,并在许多版本和很多年中都适用的API。

    为代码质量设置高标准。Spring框架非常强调有意义,最新和准确的javadoc。它是极少数可以声明干净代码结构且程序包之间没有循环依赖关系的项目之一。

     

    4. Feedback and Contributions

    对于操作问题、诊断或调试问题,我们建议使用StackOverflow,我们有一个问题页面,列出了建议使用的标签。如果您相当确定Spring框架中存在问题,或者想建议某个特性,请使用GitHub。

    如果您已经有了解决方案或建议的修复,您可以在Github上提交一个pull request。但是,请记住,除了最琐碎的问题外,我们希望在问题跟踪器中记录故障单,在该跟踪器中进行讨论并保留记录以备将来参考。在那里进行讨论,并留下记录供将来参考。

    有关更多详细信息,请参见提供内容的顶级项目页面中的指导原则。

     

    5. Getting Started

    如果您刚刚开始使用Spring,则可能需要通过创建基于Spring Boot的应用程序来开始使用Spring Framework 。Spring Boot提供了一种快速(且自以为是)的方式来创建可用于生产环境的基于Spring的应用程序。它基于Spring框架,更倾向于约定而不是配置,并且旨在使您尽快启动并运行。

    您可以使用start.spring.io生成一个基本项目,或遵循“入门”指南之一,例如“ 入门RESTful Web Service的构建”。这些指南不仅易于理解,而且非常注重任务,并且大多数基于Spring Boot。它们还涵盖了Spring产品组合中的其他项目,您在解决特定问题时可能要考虑这些项目。

  •  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值