Spring Framework文档-概述(Overview)

Spring Framework概述

版本6.0.0-SNAPSHOT

Spring能够更容易地创建Java企业级应用程序。它提供你在企业级环境中所需要拥抱的任何java语言的任何东西,同时在JVM上支持Groovy和Kotlin作为替代语言,并具有根据应用程序的需要创建应用程序的灵活性。从Spring Framework 5.1开始,Spring要求JDK8+(Java SE8+)并且对JDK 11 LTS提供了开箱即用的支持。Java SE 8 update 60建议作为Java 8最小补丁版本,但一般建议使用最近的的补丁版本。从Spring Framework 6.0开始,Spring要求Java 17+。

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

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

1. “Spring”的含义

术语“Spring”表示在不同的上下文情况中表示不同的东西。他可以用于表示Spring Framework项目本身,这是它开始的地方。久而久之,其他Spring项目已经构建在Spring Framework之上了。大多数情况下,当人们说“Spring”,他们的意思是整个Spring家族。此参考文档关于基础:Spring Framework本身。

Spring Framework是分为多个模块。应用程序可以选择他们需要哪个模块。核心是核心容器模块,包含配置模型和依赖注入机制。在这之上,Spring Framework对不同的应用程序架构提供了功能性的支持,包括消息处理,事务数据和持久化和web。它也包含基于Servlet的Spring MVC web框架以及并行的Spring WebFlux响应式web框架。

一个关于模块的注意事项:Spring的框架jar允许JDK9的模块路径(“Jigsaw”)的部署。在支持Jigsaw应用程序中使用,Spring Framework5 jar附带了“Automatic-Module-Name”清单条目,其定义了稳定的语言级别模块名称(“spring.core”,"spring.context"等等),独立于 jar artifact名称(jar遵循相同的命名格式使用“-”代替“.”,也就是“spring-core”和“spring-context”)。当然,Spring的框架 jar 在JDK8和9+上一直工作的很好。

2. Spring和Spring Framework的历史

Spring出现在2003年,作为对早期J2EE规范复杂性的响应。虽然有一些人认为Java EE和他的现代继承者Jakarta EE与Spring是竞争对手,实际上他们是互补的。Spring程序模型不会包括Jakarta EE平台规范;相反,它与从传统的EE中精心挑选的个别的规范集成。

Spring Framework也支持依赖注入(Dependency Injection(JSR 330))和常用注解(Common Annotations(JSR 250))规范,应用程序开发者可以选择他们来使用,代替Spring Framework提供的特定于Spring的机制。起初,这些是基于常用的javax包。

从Spring Framework 6.0开始,Spring已经升级到Jakarta EE 9级别(例如Servlet 5.0+,JPA 3.0+),基于jakarta命名空间,而不是传统的javax包。以EE 9为最低标准,一旦可用,Spring准备为在EE 10+中API的进一步发展,提供开箱即用的支持。这使Spring Framework 6.0完全与Tomcat 10+和Jetty 11+兼容。

久而久之,Java/Jakarta在应用程序开发中的角色已经演变。在J2EE和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等等。重要的是,记住每一个项目有它自己的源代码仓库,issue追踪,和发行节奏。请查看spring.io/projects了解完成的Spring项目列表。

3. 设计理念

当你学习一个框架,不仅知道他是做什么的而且要知道它遵循的原则是什么是非常重要的。这里是Spring Framework的指导原则:

  • 在每一个级别提供选择。Spring Boot允许你尽可能延迟设计决策。例如,你可以通过配置切换持久化提供者而无需修改你的代码。对于许多其他基础设施以及与第三方API集成也是如此。
  • 容纳不同的观点。Spring拥抱灵活,不会固执地认为事情应该如何做。它以不同的视角支持广泛的应用程序需求。
  • 保持强大的向后兼容性。Spring的演变经过精心的管理,使版本之间很少有破坏性地更改。Spring支持精心选择的JDK版本和第三方类库范围促进依赖Spring的应用程序和类库的维护。
  • 注意API设计。Spring团队花费了大量时间和精力来制作直观的API,并支持多个版本和多年。
  • 对代码质量设置高标准。Spring Framework非常强调有意义的,最新和精确的javadoc。它是少数几个可以声称代码结构干净与包之间没有循环依赖的项目之一。

4. 反馈和贡献

对于如何做问题或者诊断或者调试问题,我们建议使用Stack Overflow。点击这里了解在Stack Overflow上使用的推荐标签列表。如果你相当确定Spring Framework有问题或者想提议一个特性,请使用GitHub Issues

如果你有一个解决方案或者建议修复,你可以在Github提交推送请求。但是,请记住,除了最琐碎的问题外,我们希望在问题追踪器中归档一个问题记录,在那里进行讨论,并留下记录供以后参考。

要了解细节,请查看在CONTRIBUTING的指南,在顶级项目页。

5. 准备开始

如果你刚开始使用Spring,你可能想要创建一个基于Spring Boot应用程序使用Spring Framework开始。Spring Boot提供一个快速方式(固定的)来创建生产就绪的基于Spring的应用程序。它是基于Spring Framework的,更倾向于约定而不是配置,并且设计成让你尽快启动和运行。

你可以使用start.spring.io来生成基本的项目或者按照“准备开始”指南中的一个,例如开始构建一个RESTful Web Service。这些指南不仅易于理解,而且非常专注于任务,他们的大多数是基于Spring Boot的。他们还涵盖Spring组合的其他项目,当你要解决一个特定的问题时,你可能需要考虑这些项目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值