文章目录
- 1.SpringBoot介绍
- 2.创建一个SpringBoot项目
- 3.parent标签 - 父工程
- 4.starter依赖
- 5.启动类和文件打包
- 6.默认配置
1.SpringBoot介绍
Spring阶段最困扰大家的事情是什么? 配置 → 配置魔鬼
快速搭建一个独立的生产级别的Spring应用
快速引入项目相关依赖
开箱即用,约定大于配置,大多数应用只需要极少的Spring配置
内置JavaEE容器,可以以Jar包的方式启动
2.创建一个SpringBoot项目
- 官网
start.spring.io选择groupId、ArtifactId、版本号、扫描包、JDK版本、项目构建方式、开发语言、引入的其他依赖来创建SpringBoot应用,点击Generate会下载一个zip压缩包,解压开就是一个SpringBoot应用,同时也是一个Maven工程
解压后会包含这样的文件,包含src目录、pom.xml文件、帮助文档、Git忽略管理配置文件、Maven相关文件
- IDEA
其实需要的配置项和在官网上创建是完全一致的,只不过选择是在IDEA中选择,另外可以选择Project和Module的路径。
新建一个新的Project,其中starter service URL就是Spring官网创建SpringBoot应用的链接
选择依赖和SpringBoot应用的版本
创建好了
查看pomxml文件,我们发现刚才选择的SQL和Mvc的依赖帮我们配置好了
3.parent标签 - 父工程
所有的SpringBoot应用都有这样的一个父工程,parent标签里有一个version标签,SpringBoot应用的版本号;修改version标签里的值就是修改使用的使用SpringBoot版本
使用父工程的话,可以共享父工程里的配置 → 相同配置的解耦
父工程打包方式是pom,可以在本地仓库里找到这个文件
父工程中的标签
-
dependencies → 子工程里会引用父工程里依赖,SpringBoot应用中其实没有用到这个标签
-
dependencyManagement → 写的dependency标签的写法和我们前面的写法是一致的 → 提供的是依赖的版本信息,如果父工程中写了一个依赖,而子工程中也写了相同的依赖(groupid和artifactId一致)
-
如果子工程中的依赖没有写版本号,复用父工程中的版本号
-
如果子工程中的依赖写了版本号,使用自定义的这个版本号
和我们之前写的dependency标签不一样的点 → 没有写版本号
但实际上有版本信息 → 父工程(的父工程)中的dependencyManagement中的来
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.7.7</version>
</parent>
当前SpringBoot有一个爷爷工程,这个爷爷工程就是专门管理依赖的版本信息的
<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.7.7</version></dependency></dependencies>
</dependencyManagement>
答案:5.1.47,而不是8.0.31, boot默认给我们一个它规定的版本,只要我们手动写,那么boot就会使用我们手动配置的。
(注意!!!)实际开发
- 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供
- 如发生坐标错误,再指定version(要小心版本冲突)
4.starter依赖
引入的依赖中,artifactid中有一个starter这样的一个词,这样的依赖就叫其starter依赖
-
spring-boot-starter SpringBoot本身的依赖,所有的SpringBoot应用都有这个依赖
-
spring-boot-starter-xxx SpringBoot官方提供的依赖(groupid → org.springframework.boot),提供的是 SpringBoot对xxx技术的支持
- 比如spring-boot-starter-web 就是SpringBoot对web技术的支持- 比如spring-boot-starter-tomcat就是SpringBoot对Tomcat的支持- 比如spring-boot-starter-json 就是SpringBoot对Json的支持
-
xxx-spring-boot-starter 第三方框架提供的依赖,提供的是SpringBoot对xxx技术的支持
- 比如mybatis-spring-boot-starter,SpringBoot对MyBatis技术的支持- 比如pagehelper-spring-boot-starter
通常在SpringBoot中要使用某一项技术,只需要引入其starter依赖就可以了
为什么引入其starter依赖就可以了?
-
starter依赖中关联了其他依赖,当我们引入starter依赖的时候,会将该技术所需要的其他的依赖一同引入进来
- 举个例子:使用mybatis的话,引入mybatis-spring-boot-starter,mybatis、mybatis-spring、spring-jdbc都会被引入进来
-
starter依赖中通常会包含另外一个依赖autoconfigure依赖
- autoconfigure依赖能够帮我们做自动配置,自动配置里最主要的是自动注册默认的组件
5.启动类和文件打包
SpringBoot应用最终打包为Jar包,packaging的默认值也是jar
① 对SpringBoot项目打包(执行Maven构建指令package)
② 执行启动指令
java -jar springboot_01_quickstart.jar # 项目的名称根据实际情况修改
注意事项:
jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven插件。
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>
启动类:main方法所处的类 → 启动类的包目录就是SpringBoot应用默认的扫描包目录,也相当于了我们的SpringConfig配置文件中的包扫描
6.默认配置
tomcat默认配置了端口号为8080