概述

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

术语 “Spring” 在不同的上下文中意味着不同的事物。它可以用来指代 Spring Framework 项目本身,这是一切开始的地方。随着时间的推移,其他 Spring 项目已经构建在 Spring 框架之上。大多数情况下,当人们说 “Spring”,他们指的是整个项目系列。本参考文档重点介绍 基础:Spring Framework 本身。spring-doc.cn

Spring Framework 分为多个模块。应用程序可以选择他们需要的模块。 核心是核心容器的模块,包括配置模型和 依赖注入机制。除此之外,Spring 框架还提供了基础 支持不同的应用程序架构,包括消息传递、事务数据和 持久性和 Web 的 Web 共享。它还包括基于 Servlet 的 Spring MVC Web 框架,并且在 parallel,Spring WebFlux 反应式 Web 框架。spring-doc.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+ 的 Classpath 上都能正常工作。spring-doc.cn

2. Spring 和 Spring 框架的历史

Spring 于 2003 年问世,作为对早期 J2EE 规范复杂性的回应。 虽然有些人认为 Java EE 和 Spring 是竞争的,但 Spring 实际上是互补的 添加到 Java EE。Spring 编程模型不包含 Java EE 平台规范; 相反,它与 EE 保护伞中精心挑选的单个规范集成:spring-doc.cn

Spring Framework 还支持依赖注入 (JSR 330) 和通用注释 (JSR 250) 规范,应用程序开发人员 可以选择使用而不是 Spring 框架提供的特定于 Spring 的机制。spring-doc.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.cn

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

Spring 不断创新和发展。除了 Spring 框架之外,还有其他 项目,例如 Spring Boot、Spring Security、Spring Data、Spring Cloud、Spring Batch、 等等。请务必记住,每个项目都有自己的源代码存储库 Issue Tracker 和 Release Cadence 的 Cadence 进行更新。请参阅 spring.io/projects Spring 项目的完整列表。spring-doc.cn

3. 设计理念

当您了解框架时,不仅要知道它做什么,还要知道它做什么 它遵循的原则。以下是 Spring 框架的指导原则:spring-doc.cn

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

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

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

  • 关心 API 设计。Spring 团队在制作 API 上投入了大量的思考和时间 它们很直观,并且在许多版本和多年中都适用。spring-doc.cn

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

4. 反馈和贡献

对于操作方法问题或诊断或调试问题,我们建议使用 Stack Overflow。单击此处查看可在 Stack Overflow 上使用的建议标签列表。如果你相当确定 Spring Framework 中存在问题或想建议某个功能,请使用 GitHub 问题spring-doc.cn

如果您有解决方案或建议的修复方法,可以在 Github 上提交拉取请求。但是,请记住 对于除最琐碎的问题之外的所有问题,我们期望在该问题中提交一个工单 跟踪器,在这里进行讨论并留下记录以供将来参考。spring-doc.cn

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

5. 开始

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

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