1、依赖管理
- 父项目做依赖管理
<!--依赖管理-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
<!--他的父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
几乎声明了所有开发中常用依赖的版本号,自动版本仲裁机制。
- 开发导入starter场景启动器
1、见到很多 spring-boot-starter-* : *:就某种场景
2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入
3、SpringBoot所有支持的场景 4、见到的 *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器。
5、所有场景启动器最底层的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
- 无需关注版本号,自动版本仲裁。
1、引入依赖默认都可以不写版本
2、引入非版本仲裁的jar要写版本号
- 可以修改默认版本号(两种方式)
1、查看spring-boot-dependencies里面规定当前依赖的版本 用的 key。
2、在当前项目里面重写配置
<properties>
<mysql.version>5.1.43</mysql.version>
</properties>
2、自动配置
- 自动配好Tomcat
- 引入Tomcat依赖(Tomcat依赖包含于spring-boot-starter-web中,若已经引入过则无需引用)
- 配置Tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
- 自动配好Spring MVC
- 引入MVC全套组件
- 自动配好MVC常用组件(功能) - 自动配好 Web常用功能,如:字符编码问题
- Spring Boot帮我们配好了所有web开发的常用场景 - 默认的包结构
- 主程序所在包及其下面的所有子包里的组件都会被默认扫描进来。
- 若未放在主程序所在包或其子包内,触发404报错
- 无需以前的包扫描配置
- 改变扫描路径:
//第一种方式
@SpringBootApplication(scanBasePackages = "com.wu")
//第二种方式
@ComponentScan("指定扫描路径")
- 注意:@SpringBootApplication是一条合成注解,除四条元注解外,它还合成了三条注解。
因此,一条注解等同于下方三条注解:
- @SpringBootConfiguration
- @EnableAutoConfiguration
- @ComponentScan(“com.wu.boot”)
- 各种配置都有默认值
- 默认配置最终都是映射到某个类上,如:MultipartProperties
- 配置文件的值最终会绑定到每个类上,这个类会在容器中创建对象
- 按需加载所有自启动项
- 非常多的starter
例如:引入spring-boot-starter-web,SpringBoot只会开启web方面的starter,数据库方面的starter便不会开启
- 引入了哪些场景这个场景的自动配置才会开启
- SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里
翻译:autoconfigure(自动配置)