Spring 框架概述

Spring 使创建 Java 企业应用程序变得容易。它提供了在企业环境中使用 Java 语言所需的一切,并支持 Groovy 和 Kotlin 作为 JVM 上的替代语言,并且可以根据应用程序的需求灵活地创建多种体系结构。从 Spring Framework 5.0 开始,Spring 需要 JDK 8(Java SE 8),并且已经为 JDK 9 提供了现成的支持。

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

Spring 是开源的。它拥有一个庞大而活跃的社区,可以根据各种实际用例提供持续的反馈。这帮助 Spring 在很长一段时间内成功地 Developing 了。

1.“Spring”的含义

术语“Spring”在不同的上下文中表示不同的事物。它可以用来引用 Spring Framework 项目本身,而这一切都是从那里开始的。随着时间的流逝,其他 Spring 项目已经构建在 Spring Framework 之上。通常,当人们说“Spring”时,它们表示整个项目系列。本参考文档重点关注基础:Spring 框架本身。

Spring 框架分为多个模块。应用程序可以选择所需的模块。核心容器的模块是核心,包括配置模型和依赖项注入机制。除此之外,Spring 框架为不同的应用程序体系结构提供了基础支持,包括消息传递,事务性数据和持久性以及 Web。它还包括基于 Servlet 的 Spring MVC Web 框架,以及并行的 Spring WebFlux 反应式 Web 框架。

关于模块的 Comments:Spring 的框架 jar 允许部署到 JDK 9 的模块路径(“拼图”)。为了在启用了 Jigsaw 的应用程序中使用,Spring Framework 5 jar 附带了“自动模块名称”Lists 条目,这些 Lists 条目定义了与 jar 工件无关的稳定语言级别的模块名称(“ spring.core”,“ spring.context”等)。名称(罐子遵循相同的命名模式,用“-”代替“.”,例如“ spring-core”和“ spring-context”)。当然,Spring 的框架 jar 可以在 JDK 8 和 9 的 Classpath 上正常工作。

2. Spring 和 Spring 框架的历史

响应于早期J2EE规范的复杂性,2003 年Spring应运而生。尽管有些人认为 Java EE 和 Spring 在竞争中,但 Spring 实际上是 Java EE 的补充。 Spring 编程模型不包含 Java EE 平台规范。相反,它与 EE 伞中精心选择的各个规范集成在一起:

Spring 框架还支持依赖注入(JSR 330)和通用 Comments(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 绑定 API)在运行时遇到。这样可以使 Spring 与例如 Tomcat 8 和 9,WebSphere 9 和 JBoss EAP 7.

随着时间的流逝,Java EE 在应用程序开发中的作用已经演变。在 Java EE 和 Spring 的早期,创建了应用程序以将其部署到应用程序服务器。今天,借助 Spring Boot,可以以对开发人员和云友好的方式创建应用程序,并嵌入 Servlet 容器,并且可以轻松更改。从 Spring Framework 5 开始,WebFlux 应用程序甚至不直接使用 Servlet API,并且可以在非 Servlet 容器的服务器(例如 Netty)上运行。

Spring continue 创新和 Developing。除了 Spring Framework,还有其他项目,例如 Spring Boot,Spring Security,Spring Data,Spring Cloud,Spring Batch 等。重要的是要记住,每个项目都有其自己的源代码存储库,问题跟踪程序和发布节奏。有关 Spring 项目的完整列表,请参见spring.io/projects

3.设计哲学

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

4.反馈和贡献

对于操作方法问题或诊断或调试问题,我们建议使用 StackOverflow,并且有一个questions page列出了要使用的建议标签。如果您可以肯定地确定 Spring 框架中有问题或想提出一个功能,请使用JIRA 问题追踪器

如果您有解决方案或建议的解决方案,可以在Github上提交拉取请求。但是,请记住,对于除最琐碎的问题以外的所有问题,我们希望在问题跟踪器中记录故障单,在该跟踪器中进行讨论并保留记录以备将来参考。

有关更多详细信息,请参见CONTRIBUTING顶级项目页面上的准则。

5.入门

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

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

首页