1.Spring概况

Spring使创建Java企业级应用程序变得更简单。它提供了在企业环境中使用Java语言所需要的一切,支持Groovy和Kotlin作为JVM上的替代语言,并根据应用程序的需求灵活地创建多种体系结构。从Spring Framework 5.1开始,Spring需要使用JDK 8+ (Java SE 8+),并为JDK 11 LTS提供开箱即用的支持。

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

Spring是开源的。它拥有一个大型且活跃的社区,该社区基于各种实际用例提供持续的反馈。这帮助Spring在很长一段时间内成功地进化。

1.我们所说的“Spring”指的是什么?

“Spring”一词在不同的语境中有不同的含义。它可以用来指代Spring Framework项目本身,这也是这个术语最开始的由来。随着时间的推移,其他Spring项目慢慢地构建在了Spring框架的基础之上。大多数情况下,当人们说“Spring”时,他们指的是整个Spring生态的项目。该参考文档侧重于基础:Spring框架本身。

Spring框架被划分为多个模块。应用程序可以选择所需的模块。核心是核心容器(core containe)模块,包括配置模型(configuration model)和依赖注入(dependency injection)机制。除此之外,Spring框架还为不同的应用程序架构提供基础支持,包括消息传递、事务数据和持久性以及网络。它还包括基于Servlet的Spring MVC网络框架,以及并行的Spring WebFlux反应网络框架。

关于模块的说明:Spring框架jar允许部署到JDK 9的模块路径(“Jigsaw”)。为了在支持jigsaw的应用程序中使用,Spring Framework 5 jars带有“Automatic-Module-Name”清单条目,这些条目定义了独立于jar工件名的稳定的语言级模块名(“spring.core”、“spring.context”等)(jar遵循相同的命名模式,用“-”代替“.”,例如“spring-core”和“spring-context”)。当然,Spring框架jar在JDK 8和9+上的类路径上都能很好地工作。

2.Spring的历史和Spring框架

春天出现在2003年,是为了应对早期J2EE规范的复杂性。虽然有些人认为Java EE和Spring是竞争对手,但Spring实际上是对Java EE的补充。Spring编程模型不包含Java EE平台规范;相反,它集成了EE体系中精心挑选的个别规格:

Spring框架还支持依赖项注入 (JSR 330)和公共注释 (JSR 250) 规范,应用程序开发人员可以选择使用这些规范,而不是Spring框架提供的特定于Spring的机制。

从Spring框架5.0开始,Spring至少需要Java EE 7级别(例如Servlet 3.1+,JPA 2.1+),同时在运行时遇到新的APIs时,在Java EE 8级别提供现成的集成(例如Servlet 4.0,JSON绑定API)。这使得Spring与例如Tomcat 8和9、WebSphere 9和JBoss EAP 7完全兼容。

随着时间的推移,Java EE在应用程序开发中的角色已经发生了变化。在Java EE和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等。必须记住,每个项目都有自己的源代码库、问题跟踪程序和发布节奏。有关Spring项目的完整列表,请参见 spring.io/projects 。

3.设计理念

当你学习一个框架时,重要的是不仅要知道它可以做做什么,还要知道它遵循什么原则。下面是Spring框架的指导原则:

提供各个层面的选择。Spring允许你尽可能推迟设计决策(集成灵活)。例如,你可以通过配置切换持久性提供者,而无需更改代码。许多其他基础架构问题以及与第三方API的集成也是如此。

适应不同的观点。Spring具有灵活性,不会对应该如何做表示意见。它支持具有不同视角的广泛应用程序需求。

保持强大的向后兼容性。Spring的版本迭代经过精心的设计,以保证不同版本之间少有破坏性的更改。Spring支持一系列JDK版本和第三方库,以方便依赖Spring的应用程序和库的维护。

关心API设计。Spring团队投入了大量的精力和时间来开发直观的api,并支持多个版本和许多年。

为代码质量设定高标准。Spring框架非常强调有意义的、当前的和准确的javadoc。它是极少数可以声明干净代码结构且包之间没有循环依赖关系的项目之一。

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、资源1项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值