Java知识点总结:想看的可以从这里进入
随着功能的不断增多,Spring的搭建也越来越复杂,而Spring Boot 是 Pivotal 团队在 Spring 的基础上提供的一套全新的开源框架,其目的是为了简化 Spring 应用的搭建和开发过程。Spring Boot 去除了大量的 XML 配置文件,简化了复杂的依赖管理,它集成了大量常用的第三方库配置,大部分的 Spring Boot 应用都只需要非常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑。
SpringBoot就是为了简化开发,核心思想是约定大于配置。
它有以下特点:
需要注意是是SpringBoot3.x 的版本,它是基于 Spring6的,要求Spring Framework 6.0.0 及以上版本,JDK17及其以上版本, 开发工具IntelliJ IDEA 2021.2.1以及更高版本,TomCat10及其以上版本。
在使用 Spring Boot 进行开发之前,第一件事就是配置好开发环境。Maven、JDK等等都需要配置好。可以通过IDE创建项目,也可以通过官网创建
通过官网网站常见项目 SpringBoot
使用IDEA搭建
https://start.spring.io连接不上的话,可以改成阿里的https://start.aliyun.com/
SpringBoot只需要在项目创建时导入了关键的几个启动器后,就可以直接通过主配置类启动了,在不经过任何配置的情况下就可以访问Controller等组件,Controller等文件夹需要和启动类在同一包下。
logo标志(可自己更改),标志SpringBoot项目开始启动
在Resources 下的 templates 下创建 index.html
Title
Hello SpringBoot
不需要配置视图解析器,不需要配置DispatcherServlet,不需要配置包的扫描,在没有任何配置的情况下即可直接访问:
启动器是spring的启动场景,格式为:
,它会将一些功能场景如 SpringMVC、test等等的相关依赖统一成一个启动器,然后用相应的启动器,获取在spring-boot-dependencies管理的依赖。这是一种插件机制,它抛弃了Spring 中繁琐的配置,将复杂依赖统一集成进 starter。
我们可以打开 pom 文件查看SpringBoot的依赖,不同于之前的Spring依赖,它是以一个个的启动器的形式展现的。
SpringBoot将Spring中使用的很多依赖进行了整合,它将同一场景下的所有依赖进行整合做成一个 starter,我们导入了starter 就相当于添加了此场景下的所有依赖。
比如支持 web 环境的启动器:spring-boot-starter-web(Web 场景启动器)。
它是为整个web开发予以支持,为我们提供了嵌入的 Servlet 容器、SpringMVC 等相关依赖,并为 Spring MVC 提供了大量自动配置。他在 Spring MVC 默认功能的基础上添加了以下特性:
所以我们在使用中仅需要在依赖中引入相关启动器即可使用相关的所有依赖。
SpringBoot之所以能自动加载相关的依赖,甚至不需要指定依赖的版本,是因为它们的版本是由 spring-boot-starter-parent进行管理的,它是所有 Spring Boot 项目的父级依赖,它的存在主要是为了管理项目的资源过滤及插件。
Spring Boot 项目可以通过继承 spring-boot-starter-parent 来获得一些合理的默认配置,它主要提供了以下特性:
在pom文件中点开spring-boot-starter-parent,可以查看其底层代码:
4.0.0 org.springframework.boot spring-boot-dependencies 2.7.3 .......... 1.8 @ ${java.version} ${java.version} UTF-8 UTF-8 https://spring.io/projects/spring-boot ....许可证、开发商等等信息.....
其中在 内有一个:spring-boot-dependencies,它是用来管理spring的所有依赖的,是Springboot的版本控制中心,我们导入的启动器就是在这里选择相应的依赖加入项目的。(如果导入的依赖在这个文件内存在则不需要加版本,如果不存在则需要我们手动添加版本)
4.0.0 org.springframework.boot spring-boot-dependencies 2.7.3 pom spring-boot-dependencies Spring Boot Dependencies https://spring.io/projects/spring-boot