依赖管理
父项目统一管理依赖
每一个SpringBoot 项目都有一个父项目,用于依赖管理,所有的依赖版本在父项目中声明,子项目引入依赖无需声明版本号。
<!-- springboot启动器-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
</parent>
spring-boot-starter-parent 的父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.12.RELEASE</version>
</parent>
在 spring-boot-dependencies 中的 标签中声明了绝大部分可能用到的依赖版本

子项目修改依赖版本
根据 spring-boot-dependencies 中的 标签中需要修改版本的依赖对应的 key
在子项目的 pom.xml 文件中,重写即可,比如
springboot 2.3.12 中,spring-boot-dependencies 管理的 mysql 依赖版本为 8.0.25
如果子项目需要修改版本号为 5.1.47
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<!-- 指定需要的版本号-->
<mysql.version>5.1.47</mysql.version>
</properties>
<dependencies>
<!-- 引入 mysql 依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
Starters 启动器
Starter 是一组依赖依赖的集合描述。所有正式的启动器都遵循类似的命名模式
Spring-boot-starter -*,其中*是一种特定类型的应用程序。
只要引入场景启动器,这个场景相关的依赖都会自动引入。
官方文档:SpringBoot支持的场景启动器
所有的SpringBoot启动器底层都是 org.springframework.boot
也可以根据实际需要,创建第三方启动器,
一般命名规则:thirdpartyproject-spring-boot-starter,这也是SpringBoot自动配置的核心。
自动配置
自动配置 Tomcat
spring-boot-starter-web 场景启动器引入了 tomcat 依赖
配置好 tomcat
自动配置SpringMVC
spring-boot-starter-web 场景启动器引入了 SpringMVC 全套依赖

配置好 SpringMVC
默认的包结构
默认的包结构下,主程序类所在包及其子包下的所有组件都可以包扫描到,所有无须再配置包扫描。


package com.rpm.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author 任缥缈
* @date 2021年12月18日 10:17
*/
// 标注这是一个SpringBoot应用程序的入口类
@SpringBootApplication(scanBasePackages = {"com.rpm.example"})
// 相当于以下三个注解
// @SpringBootConfiguration
// @EnableAutoConfiguration
// @ComponentScan(scanBasePackages = {"com.rpm.example"})
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class,args);
}
}
配置默认值
所有的配置都有默认值,每个配置都映射到具体的某个类上,每个配置的值都绑定到类的属性上,Spring 容器中会创建这些类的对象。
自动配置按需加载
项目中引入了场景启动器,相关的配置才会加载。SpringBoot 所有的自动配置功能都在 Spring-boot-autoconfigure 包下面。
本文详细介绍了SpringBoot 2的依赖管理,包括父项目如何统一管理依赖,子项目如何修改依赖版本,以及Starters启动器的使用。同时,文章探讨了SpringBoot的自动配置特性,如自动配置Tomcat和SpringMVC,讨论了默认包结构、配置默认值以及自动配置按需加载的工作机制。

被折叠的 条评论
为什么被折叠?



