Spring Framework 官方文档——Spring框架概述
本文内容纲要:
- Spring是什么意思?- Spring以及Spring框架的历史
- 设计原理
- 反馈和贡献
- 入门
版本:5.1.11.BUILD-SNAPSHOT
Spring简化了Java企业级应用程序的创建。它提供了Java语言在企业级环境中需要的一切,它支持Groovy和Kotlin,且支持多种结构的应用程序。从Spring框架5.1.x版本开始,Spring需要JDK 8+(Java SE 8+),并且它支持JDK 11 LTS。
Spring支持非常多的应用场景。在大型企业中,大部分的应用程序长期运行在升级周期不受开发人员控制的JDK和应用程序服务器上。有些应用程序通过将jar包丢给云服务器的方式运行。还有一些应用程序运行时不需要服务器(例如:批处理程序等)。
Spring是开源。它的社区很活跃,可以得到许多实际用例的反馈。这一点有助于Spring长期稳定的发展。
Spring是什么意思?
“Spring”这个单词在不同的语境上下文中表达的含义不同。它可以用来指代Spring框架项目本身(Spring开始的地方。随着时间流逝,逐渐产生了许多基于Spring的项。通常,现在人们说起“Spring”时,它们说的是Spring以及基于Spring而产生的一系列项目。然而,本参考文档重点关注基础:Spring框架本身。
Spring框架分为多个模块。应用程序可以按需选择。最核心的是核心容器模块,它包括了配置模型和依赖注入机制。除此以外,Spring框架还为不同的应用程序体系结构提供了基础支持,比如消息传递、数据库事务、网络编程等。Spring框架还包括了基于Servlet的Spring MVC反应式的Spring WebFlux框架。
这里是一些关于模块的注意点:Spring框架的jar可以部署到JDK9 的模块路径(jigsaw)。为了能够在支持jigsaw的应用程序中使用,Spring 5 附带了自动命名的清单条目,这些清单条目定义了稳定的语言级别的模块名称(spring.core、spring.context等),这些名称区别于jar工程的名称(jar使“-”区分而不是使用“.”区分,例如:spring-core、spring-context等)。当然,Spring框架的jar包在JDK 8 和 9 +上都能良好运行。
Spring以及Spring框架的历史
由于早期的J2EE规范比较复杂,所以诞生Spring框架。尽管有些人认为Java EE和Spring是竞争关系,但实际上Spring是Java EE的辅助。Spring编程模型不完全包含Java EE,它精心挑选了一些规范与其集成在一起:
- Servlet API (JSR 340)
- WebSocket API (JSR 356)
- Concurrency Utilities (JSR 236)
- JSON Binding API (JSR 367)
- Bean Validation (JSR 303)
- JPA (JSR 338)
- JMS (JSR 914)
- 用于事务协作的JTA/JCA设置。
Spring框架还支持依赖注入(JSR 330)和通用注释(JSR 250)规范 ,应用程序开发人员可以选择使用这些规范来代替Spring提供的特殊机制。
从5.0版本开始,Spring框架至少需要Java EE 7级别的支持(例如:Servlet 3.1 + , JPA 2.1 +),同时,Spring还提供了与Java EE 8 级别的新的API的。如果运行时遇到Servlet 4.0 、JSON绑定的API等,也没有问题。这样的话,Spring与Tomcat 8 和 9 、 WebSphere 9 以及 JBoss EAP 7 就完全兼容了。
随着时间的推移,Java EE在应用程序开发中的角色已经发生了转变。早期,创建一个应用程序,然后部署到应用程序容器上。现在,借助SpringBoot,可以通过Devops和云原生的方式创建应用程序。从Spring 5开始,WebFlux应用甚至不直接使用Servlet API。并且可以在非Servlet容器(例如:Netty)上运行。
Spring依然在持续不断地创新和发展。除了Spring框架,许多其他项目也应运而生,例如:Spring Boot 、Spring Security 、Spring Data、SpringCloud、Spring Batch等。需要注意的是,这些项目有他们自己的源代码存储库以及问题追踪和版本发布节奏等。有关Spring项目的完整列表,请参见:spring.io/projects 。
设计原理
当你学习框架的时候,不仅仅需要知其然,更要知其所以然。下面是Spring框架的指导原则:
- 在每个级别都提供选择。例如,您可以在不更改代码的情况下,通过配置切换持久层提供者。对于许多其他基础架构问题以及与第三方API的集成也是如此。
- 容纳不同的观点。Spring非常灵活,并且它不要求应用程序应该怎们做。它通过不同的视角来支持多种应用程序。
- 保持强大的兼容性。Spring对版本进行了精心的管理,这样,在版本迭代时,破坏性更改被极大地降低。Spring对JDK的版本和第三方库也进行了精挑细选,这样,维护应用程序和库也变得更加方便。
- 关注API设计。Spring团队花费了大量的时间和精力来设计直观的、能够经历时间考验的API。
- 高质量的代码。Spring框架强调有意义、及时更新、准确的JavaDoc。它是极少数可以声明自己的代码结构清晰且程序之间没有循环依赖的项目之一。
反馈和贡献
译者注:本段没啥特别的,采用机译。
对于操作方法问题或诊断或调试问题,我们建议使用StackOverflow,并且有一个问题页面列出了要使用的建议标签。如果确切地认为Spring框架中有问题或想提出功能,请使用GitHub Issues。
如果您有解决方案或建议的解决方案,可以在Github上提交拉取请求 。但是,请记住,对于除最琐碎的问题以外的所有问题,我们希望在问题跟踪器中记录故障单,在该跟踪器中进行讨论并保留记录以备将来参考。
有关更多详细信息,请参见CONTRIBUTING顶级项目页面上的准则 。
入门
译者注:本段也没啥可看的,采用机译。
如果您刚刚开始使用Spring,则可能需要通过创建基于Spring Boot的应用程序来开始使用Spring Framework 。Spring Boot提供了一种快速(且自以为是)的方式来创建可用于生产环境的基于Spring的应用程序。它基于Spring框架,更倾向于约定而不是配置,并且旨在使您尽快启动并运行。
您可以使用start.spring.io生成一个基本项目,或遵循“入门”指南之一,例如“ 入门RESTful Web Service的构建”。这些指南不仅易于理解,而且非常注重任务,并且大多数基于Spring Boot。它们还涵盖了Spring产品组合中的其他项目,您在解决特定问题时可能要考虑这些项目。
本文内容总结:Spring是什么意思?,Spring以及Spring框架的历史,设计原理,反馈和贡献,入门,
原文链接:https://www.cnblogs.com/ChesterWang/p/11636737.html
以上是 Spring Framework 官方文档——Spring框架概述 的全部内容, 来源链接: utcz.com/z/296405.html