SpringBoot 2 系列三:依赖管理与自动配置特性

本文详细介绍了SpringBoot 2的依赖管理,包括父项目如何统一管理依赖,子项目如何修改依赖版本,以及Starters启动器的使用。同时,文章探讨了SpringBoot的自动配置特性,如自动配置Tomcat和SpringMVC,讨论了默认包结构、配置默认值以及自动配置按需加载的工作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依赖管理

父项目统一管理依赖

每一个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 包下面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋水浮萍任缥缈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值