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 Framework之上。大多数情况下,当人们说“春天”时,他们就意味着整个项目家族。本参考文档侧重于基础:Spring Framework本身。

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

关于模块的说明:Spring的框架jar允许部署到JDK 9的模块路径(“Jigsaw”)。为了在支持Jigsaw的应用程序中使用,Spring Framework 5 jar带有“Automatic-Module-Name”清单条目,它们定义了独立于jar工件的稳定语言级模块名称(“spring.core”,“spring.context”等)名称(罐子使用相同的命名模式,而不是“。”,例如“spring-core”和“spring-context”)。当然,Spring的框架jar在JDK 8和9+上的类路径上都能正常工作。

2. Spring的历史和Spring框架

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

Spring Framework还支持依赖注入(JSR 330)和Common Annotations(JSR 250)规范,应用程序开发人员可以选择使用这些规范,而不是Spring Framework提供的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的帮助下,应用程序以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 Framework的指导原则:

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

  • 适应不同的观点。Spring拥抱灵活性,并不认为应该如何做。它以不同的视角支持广泛的应用需求。

  • 保持强大的向后兼容性。Spring的演变经过精心设计,可以在版本之间进行一些重大改变。Spring支持精心挑选的JDK版本和第三方库,以便于维护依赖于Spring的应用程序和库。

  • 关心API设计。Spring团队花了很多心思和时间来制作直观的API,这些API在很多版本和多年中都有用。

  • 为代码质量设定高标准。Spring Framework非常强调有意义的,最新的和准确的javadoc。它是极少数项目之一,可以声称干净的代码结构,包之间没有循环依赖。

最新文章

  1. java compiler level does not match the version of the installed java project facet 解决方案
  2. okhttp3 post 数据打包方法
  3. 【BZOJ 1568】【JSOI 2008】Blue Mary开公司
  4. php概率算法(转)
  5. 动态图片加到UIImageView中
  6. 如何卸载eclipse中的ADT
  7. Bash的数组
  8. leetcode — copy-list-with-random-pointer
  9. Bootatrap常用样式
  10. [Zabbix3.0 ]添加Nginx监控
  11. Flask框架(1)--基础
  12. .Net Trace->Listeners->Remove
  13. jqGrid后台交互样例
  14. 虚拟DOM与DOM diff算法
  15. 从html页面中抽取table表格数据
  16. MySQL Lock--INSERT加锁规则
  17. MySQL 中 utf8 和 utf8mb4 的使用以及字符集相关(原文优秀,必读)
  18. 100M双绞线接头的标准接法
  19. React笔记-事件注册
  20. jQuery处理JSONP

热门文章

  1. linux svn安装 及 常用命令
  2. Yii2.0 上使用 redis
  3. eclipse端口号冲突解决办法
  4. Linux学习方法和心态
  5. [Python]基础教程(4)、Python 变量类型
  6. easyUI提交不跳转
  7. Polly 熔断策略
  8. 使用ODP.NET连接Oracle数据库
  9. API测试:Chai & Mocha
  10. Spark Standalone cluster try