1.Spring 框架概述
Spring 框架概述
Version 5.2.6.RELEASE
Spring使创建Java企业级应用变得更加容易。它提供了在企业环境中拥抱Java语言开发所需的一切。Groovy和Kotlin作为JVM上的可选语言,Spring也提供了良好支持,Spring也能根据应用程序的需要灵活地创建多种架构。从Spring 5.1开始,Spring需要JDK 8+(Java SE 8+),并对JDK 11 LTS提供了开箱即用支持。作为Java 8的最低补丁版本,建议将Java SE 8更新到60版本,但一般建议使用最近的补丁版本。
Spring支持广泛的应用场景。在大型企业中,应用程序往往存在很长时间,且必须在升级周期不受开发人员控制的JDK和应用程序服务器上运行。有些应用程序可能是以单个jar的形式嵌入服务器运行,也有可能是在云环境中运行。还有一些可能是独立的应用程序(如批处理或集成工作负载),不需要在服务器中运行。
Spring是开源的。 它拥有一个庞大而活跃的社区,可以根据各种实际用例提供持续的反馈。 这帮助了Spring在很长一段时间内得到成功发展。
1 我们所说的 "Spring "是什么意思
"Spring "这个词在不同的语境下有不同的含义。它可以用来指Spring框架项目本身,也就是整个Spring的起源。随着时间的推移,其他的Spring项目都以Spring框架为基础。大多数情况下,当人们说 "Spring "时,他们指的是整个Spring项目家族。本参考文档主要关注的是基础:Spring框架本身。
Spring框架分为多个模块。应用程序可以选择他们需要哪些模块。核心容器是模块的核心,包括配置模型和依赖注入机制。除此之外,Spring框架还为不同的应用架构提供了基础支持,包括消息传递、数据的事务和持久化以及web支持。它还包括基于Servlet的Spring MVC Web框架,同时还包括Spring WebFlux reactive Web框架。
关于此模块的说明。Spring 的框架相关jar包允许部署到 JDK 9 的模块路径下("Jigsaw")。为了支持Jigsaw应用程序的使用,Spring Framework 5 相关jar包附带了 "Automatic-Module-Name "清单条目,它定义了独立于jar artifact名称的稳定语言级模块名称("spring.core"、"spring.context "等),(jar遵循相同的命名模式,只是用"-“代替”.",例如 "spring-core "和 "spring-context")。当然,Spring框架的jar包在JDK 8和9+的classpath上都能正常工作。
2. Spring和Spring框架的历史
作为对早期J2EE规范的复杂性的回应,Spring于2003年诞生。虽然有些人认为Java EE和Spring是竞争关系,但实际上Spring是对Java EE的补充。Spring 编程模型并不包含Java EE平台规范;相反,它与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框架提供的Spring特有的机制。
从Spring Framework 5.0开始,Spring至少需要Java EE 7级别(如Servlet 3.1+、JPA 2.1+),同时在运行时遇到Java EE 8级别的新API(如Servlet 4.0、JSON Binding API)时,Spring也提供了开箱即用的集成。这使得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框架之外,还有其他项目,如Spring Boot、Spring Security、Spring Data、Spring Cloud、Spring Batch等。需要记住的是,每个项目都有自己的源代码库、问题跟踪器和发布节奏。请参见 spring.io/projects 获取完整的 Spring 项目列表。
3. 设计理念
当你了解一个框架的时候,不仅要知道它的作用,而且要知道它所遵循的原则。以下是Spring框架的指导原则。
在每个层次上提供选择。Spring让你尽可能推迟设计决策。例如,您可以在不更改代码的情况下通过配置切换持久化提供程序。对于许多其他基础架构问题以及与第三方API的集成也是如此。
适应不同的需求。Spring 拥抱灵活性,对事情应该如何做并不主观臆断。它支持各种不同角度的应用需求。
保持强大的向后兼容性。Spring的演进经过精心的管理,以使各个版本之间几乎没有重大变化。Spring支持一系列精心挑选的JDK版本和第三方库,以方便维护依赖Spring的应用程序和库。
关心API的设计。Spring团队花了大量的心思和时间来制作通俗易懂,并在许多版本和多年的时间里都能一直使用的API。
为代码质量设定了高标准。Spring框架非常强调有意义的、最新的、准确的javadoc。它是极少数能够声称代码结构干净且包之间没有循环依赖的项目之一。
4.反馈和贡献
对于如何提出问题、诊断或调试问题,我们建议使用StackOverflow,并且有一个问题页面列出了建议使用的标签。如果您相当肯定Spring框架中存在问题,或者想推荐一个功能,请使用GitHub问题页面。
如果你有一个解决方案或建议的修复方法,你可以在Github上提交一个pull request。但是,请记住,除了最琐碎的问题,我们希望在问题跟踪器中提交一个单子,在该跟踪器中进行讨论并保留记录以备将来参考。
更多详情请参见 CONTRIBUTING 的顶层项目页面上的指南。
5.开始使用
如果您刚刚开始使用Spring,您可能希望创建一个基于Spring Boot的应用程序来开始使用Spring框架。Spring Boot提供了一种快速(且是建议的)方法来创建一个基于Spring的生产型应用程序。它基于Spring框架,偏向于约定而非配置,旨在让你尽快启动和运行。
你可以使用start.spring.io生成一个基本的项目,或者按照 "入门 "指南之一,如 "入门构建RESTful Web服务"。除了更容易理解之外,这些指南还非常注重任务实践,且大多数都是基于Spring Boot。它们还涵盖了Spring组合中的其他项目,你在解决某个特定问题时可能会考虑到这些项目。
1.Spring 框架概述的更多相关文章
- Spring框架概述
Spring是最流行的Java企业级应用开发框架,全球数以百万的开发者在使用Spring框架创建高性能.易测试.可重用的代码. Spring框架的核心特性可以应用于任何Java应用,但扩展的JavaE ...
- Spring 框架概述
◆简介 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 Spring 框架是一个分层架构,由 7 个定义良好的模块组成. ...
- Spring框架介绍及使用
Spring框架—控制反转(IOC)1 Spring框架概述1.1 什么是Spring1.2 Spring的优点1.3 Spring的体系结构2 入门案例:(IoC)2.1导入jar包2.2目标类2. ...
- Spring 框架(一)
1 spring框架概述 1.1 什么是spring l Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert ...
- spring框架入门day01
struts:web层,比较简单(ValueStack值栈,拦截器) hibernate:dao层,知识点杂 spring:service层,重要,讲多少用多少 --> [了解] spring ...
- Java匹马行天下之J2EE框架开发——Spring—>Spring框架知多少
————也许我注定成不了一个伟大的人,但是至少我可以做一个很棒的自己.我想我现在应该做的不是瞻前顾后,而是活在当下,正确认知自己,做好自己现在的工作,努力提升自己的能力,踏踏实实地做一个程序员 一.思 ...
- Spring框架介绍及使用(转载)
原文链接 Spring框架—控制反转(IOC) 1 Spring框架概述1.1 什么是SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod ...
- Spring框架详解介绍-基本使用方法
1.Spring框架-控制反转(IOC) 2.Spring框架-面向切面编程(AOP) 3.Spring 内置的JdbcTemplate(Spring-JDBC) Spring框架-控制反转(IOC) ...
- Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]
您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...
随机推荐
- SpringBoot系列(十一)拦截器与拦截器链的配置与使用详解,你知道多少?
往期推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件详解 SpringBoot系列(四)web静 ...
- Git速查表大全
- gin请求数据校验
前言 最近优化gin+vue的前后端分离项目代码时候,发现代码中对请求数据的校验比较繁琐,于是想办法简化它.最终我发现了go-playground/validator开源库很好用. 优化前代码 代码如 ...
- 上传文件的input问题以及FormData特性
1.input中除了type="file"还要加上name="file",否则$_FILES为空,input的name值就是为了区分每一个input的 2.va ...
- (转)ATOM介绍和使用
一,Atom介绍 Atom 是 Github 开源的文本编辑器,这个编辑器完全是使用Web技术构建的(基于Node-Webkit).启动速度快,提供很多常用功能的插件和主题,可以说Atom已经足以胜任 ...
- slow-log 和bin-log相关参数介绍
1. slow-log show global status Slow_queries --------慢查询的次数,即查询的时间超过long_query_time设置的时间(不能修改) 配置文件 ...
- 再也不用c刷题了!!——c++刷题必备
致读者: 博主是一名数据科学与大数据专业大二的学生,真正的一个互联网萌新,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于困惑的读者.由于水平有限,博客中难免会有一些错误 ...
- ajax学习摘抄笔记
2019独角兽企业重金招聘Python工程师标准>>> AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). A ...
- pomelo安装笔记
npm install -dnpm config set registry https://registry.npm.taobao.orgnpm install pomelo -gpomelo lis ...
- 代码,绘画,设计常用的颜色名称-16进制HEX编码-RGB编码 对照一览表
排列方式,英文名称的字典序 颜色名 HEX16进制编码 RGB编码 AliceBlue F0F8FF 240,248,255 AntiqueWhite FAEBD7 250,235,215 Aqua ...