概述

1. 我们所说的“Spring”是什么意思

“Spring”一词在不同的上下文中意味着不同的东西。可以用来指代 Spring Framework 项目本身,这是一切的开始。随着时间的推移,其他Spring 项目已构建在 Spring Framework 之上。大多数情况下,当人们说 “Spring”,它们指的是整个项目家族。本参考文档重点介绍 基础:Spring Framework 本身。spring-doc.cadn.net.cn

Spring 框架分为多个模块。应用程序可以选择他们需要的模块。 核心是核心容器的模块,包括配置模型和 依赖注入机制。除此之外,Spring 框架还提供了基础 支持不同的应用程序架构,包括消息传递、事务数据和 持久性和网络。它还包括基于 Servlet 的 Spring MVC Web 框架,并且在 parallel,Spring WebFlux 响应式 Web 框架。spring-doc.cadn.net.cn

关于模块的说明:Spring 的框架 jar 允许部署到 JDK 9 的模块路径 (“拼图”)。为了在支持 Jigsaw 的应用程序中使用,Spring Framework 5 jar 附带了 “Automatic-Module-Name”清单条目,用于定义稳定的语言级模块名称 (“spring.core”、“spring.context”等)独立于 jar 工件名称(jar 紧随其后的 使用“-”而不是“.”的相同命名模式,例如“spring-core”和“spring-context”)。 当然,Spring 的框架 jar 在 JDK 8 和 9+ 上的类路径上都能正常工作。spring-doc.cadn.net.cn

2. Spring 和 Spring 框架的历史

Spring 于 2003 年诞生,作为对早期 J2EE 规范复杂性的回应。 虽然有些人认为 Java EE 和 Spring 是竞争的,但实际上 Spring 是互补的 到 Java EE。Spring 编程模型不采用 Java EE 平台规范; 相反,它与 EE 保护伞中精心挑选的个性化规格集成在一起:spring-doc.cadn.net.cn

Spring 框架还支持 Dependency Injection (JSR 330) 和通用注释 (JSR 250) 规范,应用程序开发人员 可以选择使用代替 Spring Framework 提供的 Spring 特定机制。spring-doc.cadn.net.cn

从 Spring Framework 5.0 开始,Spring 需要 Java EE 7 级别(例如 Servlet 3.1+、JPA 2.1+) 作为最低限度 - 同时提供与较新 API 的开箱即用集成 在 Java EE 8 级别(例如 Servlet 4.0、JSON Binding API)时。 这使得 Spring 与 Tomcat 8 和 9、WebSphere 9 和 JBoss EAP 7 完全兼容。spring-doc.cadn.net.cn

随着时间的推移,Java EE 在应用程序开发中的作用不断演变。在早期 Java EE 和 Spring 中,应用程序被创建为部署到应用程序服务器。 今天,在 Spring Boot 的帮助下,应用程序是在 DevOps 和 云友好的方式,嵌入了 Servlet 容器,并且易于更改。 从 Spring Framework 5 开始,WebFlux 应用程序甚至不直接使用 Servlet API 并且可以在不是 Servlet 容器的服务器(例如 Netty)上运行。spring-doc.cadn.net.cn

Spring不断创新和发展。除了 Spring 框架之外,还有其他 项目,例如 Spring Boot、Spring Security、Spring Data、Spring Cloud、Spring Batch、 除其他外。重要的是要记住,每个项目都有自己的源代码存储库, 问题跟踪器和发布节奏。请参阅 spring.io/projects Spring 项目的完整列表。spring-doc.cadn.net.cn

3. 设计理念

当您了解框架时,不仅要了解它的作用,还要了解它的作用 它遵循的原则。以下是 Spring 框架的指导原则:spring-doc.cadn.net.cn

  • 在各个层面提供选择。Spring 允许您尽可能晚地推迟设计决策。 例如,您可以通过配置切换持久性提供程序,而无需更改 您的代码。对于许多其他基础设施问题以及与 第三方 API。spring-doc.cadn.net.cn

  • 适应不同的观点。Spring拥抱灵活性,不固执己见 关于应该如何做事。它支持广泛的应用需求 不同的观点。spring-doc.cadn.net.cn

  • 保持强大的向后兼容性。Spring 的演变得到了精心管理 强制版本之间进行很少的重大更改。弹簧支持精心挑选的系列 JDK 版本和第三方库,以方便维护应用程序和 依赖于 Spring 的库。spring-doc.cadn.net.cn

  • 关心 API 设计。Spring 团队在制作 API 上投入了大量的心思和时间 直观且经久耐用。spring-doc.cadn.net.cn

  • 为代码质量设定高标准。Spring 框架非常强调 有意义、最新且准确的 javadoc。这是极少数可以声称 干净的代码结构,包之间没有循环依赖关系。spring-doc.cadn.net.cn

4. 反馈和贡献

对于作方法问题或诊断或调试问题,我们建议使用 Stack Overflow。单击此处查看要在 Stack Overflow 上使用的建议标记列表。如果您相当确定 Spring Framework 有问题或想提出一个功能,请使用 GitHub 问题spring-doc.cadn.net.cn

如果您有解决方案或建议的修复,可以在 Github 上提交拉取请求。但是,请记住 除了最琐碎的问题外,我们希望在问题中提交一张票 跟踪器,进行讨论并留下记录以供将来参考。spring-doc.cadn.net.cn

有关更多详细信息,请参阅 CONTRIBUTING, 顶级项目页面。spring-doc.cadn.net.cn

5. 开始使用

如果您刚刚开始使用 Spring,您可能需要开始使用 Spring 框架,通过创建基于 Spring Boot 应用。Spring Boot 提供了一种快速(且固执己见)的方法来创建 生产就绪基于 Spring 的应用程序。它基于 Spring 框架,有利于 约定重于配置,旨在让您快速启动和运行 尽可能。spring-doc.cadn.net.cn

您可以使用 start.spring.io 生成基本项目或遵循 “入门”指南之一,例如构建 RESTful Web 服务入门。 除了更容易理解之外,这些指南还非常注重任务,而且大多数 基于 Spring Boot。它们还涵盖了 Spring 投资组合中的其他项目,这些项目 在解决特定问题时,您可能需要考虑。spring-doc.cadn.net.cn