父项目依赖管理
首先我们来分析一下SpringBoot的pom文件当中的父项目parent:
其实每一个SpringBoot工程都会有这样的一个父项目,这个父项目的作用是什么呢?前面我们学习过的maven的父项目都是用来作为依赖管理的,父项目当中可能会声明许多依赖,子项目只需要继承父项目即可,子项目以后写依赖就不需要版本号了。这个父项目还有一个继承的最高级的父项目:
鼠标点进去我们会发现,我们开发当中需要用到的几乎所有的jar包的所有版本都在里面:
假设我们需要使用自己想用的某个版本的话,比如对于mysql的版本我们想要自定义,我们就可以在pom文件当中自定义设置mysql的属性:
第一步:查看spring-boot-dependencies里面规定当前以来的版本用的key;
第二部:在当前项目里面重写配置即可。
<properties>
<mysql.version>5.1.43</mysql.version>
</properties>
starter场景启动器
- 启动器格式:spring-boot-starter-*, *代表某种场景;
- 只要引入starter,这个场景的所有常规需要的依赖都会自动引入
- SpringBoot所有支持的场景
https://docs.spring.io/spring-boot/docs/2.4.3/reference/html/using-spring-boot.html#using-boot-starter - 所有场景启动器最底层的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
自动配置
- 自动配置好Tomcat
- 自动配置好SpringMVC
- 自动配置好web常见功能,如:字符编码问题
- 默认的包结构
主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来;
无需配置以前的包扫描配置;
如果想要改变扫描路径,可以使用@SpringBootApplication(scanBasePackages = “包路径”)。 - 各种配置拥有默认值
默认配置最终都是映射到MultipartProperties;
配置文件的值最终会绑定到每个类上,这个类会在容器中创建对象。 - 按需加载所有自动配置项
pom文件当中引入了哪个开发场景(starter)就加载哪个场景的配置;
SpringBoot所有的自动配置功能都在spring-boot-autoconfigure里面。 - …