Spring Boot是什么,和Spring有什么关系?(新手必看)
当今许多互联网企业采用 Java EE 技术开发自己的后端服务器,原因在于 Java 语言简单、安全、支持多线程、性能高以及 Java EE 具有多年技术积累,能够快速、安全、高性能地构建互联网项目。
但是,随着 Java 的发展,Java EE 渐渐走到了尽头,2018 年 Eclipse 基金会正式将 Java EE 修改为 Jakarta EE,随即从 Java EE 8 升级为 Jakarta EE 9,而原有的 Spring Boot 2.x 大部分还是基于 Java EE 7 或 Java EE 8 进行开发的,就显得落后了。
随着时间到了 2021 年,Jakarta EE 得到了长足的发展。而Java 8 语法严重落后于其他语言,导致 Java 语言的发展也遇到了瓶颈。因此,在Spring 6 中,就已经决定要基于 Java 17+ 和 Jakarta EE 9 进行开发,而新版的 Spring Boot 3.x 基于 Spring 6 进行开发,因此也要求基于 Java 17+ 和 Jakarta EE 9,并尽可能向上兼容 Jakarta EE 10。
应该说,Spring 6 是 Spring 框架的重大升级,能够更好地支持容器和微服务的开发,并拥有更快的创新速度,这也是未来数年企业级 Java 发展的方向。
这段描述告诉我们:
“约定优于配置
但是,随着 Java 的发展,Java EE 渐渐走到了尽头,2018 年 Eclipse 基金会正式将 Java EE 修改为 Jakarta EE,随即从 Java EE 8 升级为 Jakarta EE 9,而原有的 Spring Boot 2.x 大部分还是基于 Java EE 7 或 Java EE 8 进行开发的,就显得落后了。
随着时间到了 2021 年,Jakarta EE 得到了长足的发展。而Java 8 语法严重落后于其他语言,导致 Java 语言的发展也遇到了瓶颈。因此,在Spring 6 中,就已经决定要基于 Java 17+ 和 Jakarta EE 9 进行开发,而新版的 Spring Boot 3.x 基于 Spring 6 进行开发,因此也要求基于 Java 17+ 和 Jakarta EE 9,并尽可能向上兼容 Jakarta EE 10。
应该说,Spring 6 是 Spring 框架的重大升级,能够更好地支持容器和微服务的开发,并拥有更快的创新速度,这也是未来数年企业级 Java 发展的方向。
Spring Boot的特点
谈到 Spring Boot,我们先来了解它的特点。依据官方的文档,Spring Boot 的特点如下:- 能够创建独立的 Spring 应用程序;
- 能够嵌入 Tomcat、Jetty 或者 Undertow 等服务器,无须部署 WAR 文件;
- 允许通过 Maven 或 Gradle 来根据需要获取启动器(starter);
- 尽可能地自动配置 Spring;
- 提供生产就绪型功能,如指标、健康检查和外部配置;
- 绝对没有代码生成,对 XML 没有配置要求。
这段描述告诉我们:
- Spring Boot 项目可以看作一个基于 Spring 框架搭建起来的独立应用;
- Spring Boot 能够嵌入 Tomcat、Jetty 或者 Undertow 等服务器,并且不需要部署传统的 WAR 文件,也就是说搭建 Spring Boot 项目并不需要单独下载 Tomcat 等传统的服务器;
- Spring Boot 提供通过 Maven(或者 Gradle)依赖的 starter,这些 starter 可以直接获取开发所需的相关包,通过这些 starter 项目就能以 Java Application 的形式运行 Spring Boot 项目;
- 对于配置,Spring Boot 提供 Spring 框架的最大自动化配置,大量使用自动配置,尽量减少开发者对 Spring 的配置;
- Spring Boot 提供一些监测、自动检测的功能和外部配置功能;
- Spring Boot 没有任何附加代码和 XML 的配置要求。
“约定优于配置