SpringBoot的依赖管理和自动配置

news2024/11/20 12:18:28

目录

  • 依赖管理
  • 自动配置

依赖管理

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>

几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制
在这里插入图片描述
2.开发导入starter场景启动器

1、见到很多 spring-boot-starter-**就某种场景
2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入
3、SpringBoot所有支持的场景
https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter
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>

3.无需关注版本号,自动版本仲裁

  • 1、引入依赖默认都可以不写版本
  • 2、引入非版本仲裁的jar,要写版本号。

4.可以修改默认版本号

1、查看spring-boot-dependencies里面规定当前依赖的版本 用的 key。
2、在当前项目里面重写配置
    <properties>
        <mysql.version>5.1.43</mysql.version>
    </properties>

在这里插入图片描述

自动配置

1.自动配好Tomcat
○ 引入Tomcat依赖。
○ 配置Tomcat

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>2.3.4.RELEASE</version>
      <scope>compile</scope>
    </dependency>

在这里插入图片描述
2.自动配好SpringMVC
○ 引入SpringMVC全套组件
○ 自动配好SpringMVC常用组件(功能)
在这里插入图片描述
3.自动配好Web常见功能,如:字符编码问题
○ SpringBoot帮我们配置好了所有web开发的常见场景
4.默认的包结构
○ 主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来
○ 无需以前的包扫描配置
○ 想要改变扫描路径,@SpringBootApplication(scanBasePackages="com.donglin)
或者@ComponentScan 指定扫描路径

@SpringBootApplication
等同于
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.donglin.boot")

5.各种配置拥有默认值
○ 默认配置最终都是映射到某个类上,如:MultipartProperties
○ 配置文件的值最终会绑定每个类上,这个类会在容器中创建对象

6.按需加载所有自动配置项
○ 非常多的starter
○ 引入了哪些场景这个场景的自动配置才会开启
○ SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/491810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何远程访问本地jupyter notebook服务器,实现无公网IP端口映射

文章目录 前言视频教程1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 转载自远控源码文章&#xff1a;公网远程访问jupyter notebook【cpolar内网穿透】 前言 Jupyter Notebook&am…

【数据结构】插入排序

插入排序 1. 排序2.插入排序2.1直接插入排序2.2折半插入法2.3希尔排序 1. 排序 排序的概念 排序就是将一组杂乱无章的数据按一定规律&#xff08;顺序或者逆序&#xff09;排列起来。 排序的目的 方便查找元素。 内部排序和外部排序 若待排序记录都在内存中&#xff0c;称为内…

ASEMI代理ADI亚德诺LTC6992IS6-1#TRMPBF车规级芯片

编辑-Z LTC6992IS6-1#TRMPBF参数描述&#xff1a; 型号&#xff1a;LTC6992IS6-1#TRMPBF 输出频率&#xff1a;3.81Hz 工作电源电压范围&#xff1a;2.25 - 5.5V 通电复位电压&#xff1a;1.95V 电源电流&#xff1a;105-365A SET引脚处的电压&#xff1a;1V 频率设置电…

性能测试工程师岗分级(初中高/资深/专家)?提高性能测试的价值...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试岗位按照…

嵌入式Linux驱动开发(十二)platform设备驱动实验

1. platform设备驱动简介 基于驱动可重用性考虑&#xff0c;提出驱动分离与分层思想。平台设备驱动就是基于此。 1.1 驱动分隔与分层 1&#xff09;驱动分隔&#xff1a;   以I2C驱动为例&#xff0c;假设有三类SOC&#xff0c;各自对一个设备写I2C驱动&#xff0c;就需要3…

StarUML破解失败解决办法

明明以及安装了asar但是输入反编译命令还是显示asar不是内部命令 于是根据提示找到了这个文件夹&#xff0c;发现里面有asar的命令&#xff0c;而且输入asar -v也可以查看版本 于是我把app.asar那个文件复制过来了&#xff0c;然后在这个路径输入反编译命令&#xff0c;成功…

6.2.2邻接表法 6.2.3十字链表,邻接多重表

由于用邻接矩阵存储稀疏图会造成大量空间浪费。 而本节课我们所学的邻接表是采用顺序存储加上链式存储的方式。 arcnum指的是弧的数量 对比&#xff1a;树的孩子表示法&#xff08;相同的实现方式&#xff09; Compare&#xff1a; 6.2.3十字链表&#xff0c;邻接多重表 定义这…

Android 内存分析(java/native heap内存、虚拟内存、处理器内存 )

1.jvm 堆内存(dalvik 堆内存) 不同手机中app进程的 jvm 堆内存是不同的&#xff0c;因厂商在出厂设备时会自定义设置其峰值。比如,在Android Studio 创建模拟器时&#xff0c;会设置jvm heap 默认384m , 如下图所示&#xff1a; 当app 进程中java 层 new 对象(加起来总和)占用…

知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通。我们从文本数据中采集到关键信息,并抽取出其中的关系信息,然后在存入图数据库中,整个过程实现自动化,我这里将举一个文本例子进行抽取。 对于知识图谱的构建是将实体…

ThingsBoard使用jar包自己构建镜像部署

1、概述 这一节主要讲解你自己使用jar包构建镜像,一般在很多企业中,都是使用Jenkins配置流水线,自动打包,然后拷贝程序在target目录下生成的jar包,然后使用Dockerfile文件进行构建镜像,其实我这一节讲的也是类似,只是不使用Jenkins来实现自动,原理都一样,估计也是很多…

网络协议 — BGP 边界网关协议

目录 文章目录 目录BGP 和 ASBGP Router 和 RoutesBGP Message 类型和格式BGP Msg HeaderBGP Msg DataOpen MsgKeepalive MsgNotification MsgRoute-refresh MsgUpdate Msg BGP Msg 状态机 BGP RR&#xff08;Route-Reflectors&#xff0c;路由反射器&#xff09;BGP MP&#x…

基于STM32+NBIOT+华为云IOT设计的智能井盖

一、概述 智能井盖是一种通过物联网技术实现对井盖状态监测和管理的设备。当前介绍基于STM32微控制器,BC26 NBIOT模组以及华为云IOT平台设计一款智能井盖系统。该系统通过光线传感器、霍尔传感器、温湿度传感器等设备实现井盖状态的实时监测,通过NBIOT网络将数据上传到华为云…

5 Redis缓存穿透、击穿、雪崩、分布式锁、布隆过滤器

1 Redis 应用问题解决 1.1 缓存穿透 1.1.1 问题描述 key 对应的数据在数据源并不存在&#xff0c;每次针对此 key 的请求从缓存获取不到&#xff0c;请求都会压到数据源&#xff08;数据库&#xff09;&#xff0c;从而可能压垮数据源。比如 用一个不存在的用户 id 获取用户…

ES的概述

一、ECMASript 相关介绍 1.1什么是 ECMA ECMA &#xff08; European Computer Manufacturers Association &#xff09;中文名称为欧洲计算机制 造商协会&#xff0c;这个组织的目标是评估、开发和认可电信和计算机标准。 1994 年后该 组织改名为 Ecma 国际。 1.2.什么…

Three.js--》模型材质与纹理的使用

目录 初识材质与纹理 修改模型材质颜色 模型添加纹理 纹理常用属性使用 纹理显示算法 设置粗糙度 纹理加载进度情况 设置环境贴图 初识材质与纹理 three.js中的材质就是几何体表面的材料。所有材质均继承自Material。ThreeJS的材质分为&#xff1a;基础材质、深度材质…

Linux(centos 7) 环境安装MySQL5.7

mysql安装包 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;b8w4 环境准备 安装好的centos 7系统 root 用户登录Linux 在根目录下创建/soft目录 上传mysql安装包到/soft目录&#xff0c;结果如下 准备完毕 安装 根据现有序号挨个安装 rpm 包&#xff0c;依…

“聪明车”接驳“智慧路”—— 智能网联车驶上新赛道

去年底&#xff0c;智己L7首批200台Beta体验版下线交付。 智能网联车&#xff0c;“新赛道”上疾驶着“新终端”。“聪明车”如何更好接驳“智慧路”&#xff1f;全国两会现场&#xff0c;不少代表委员聚焦于这一话题展开热议&#xff0c;出谋划策。 “只有把‘终端’牢牢掌握在…

06 - 2 分层架构模式(Layered Arch)

层 层的定义 层&#xff1a;软件的逻辑单元每一层都有特定的功能组件被分配到不同的层 何谓分层 将系统按照职责拆分和组织上层依赖于直接下层 下层不可以依赖于上层不可以跃层访问&#xff08;理想状况&#xff09; 经典分层架构 OSI 7 层架构 CS 两层架构Client&…

生动形象的傅里叶变换解析!

使用联想链条和几何直观&#xff0c;辅以从实际需求衍生概念的思考模式&#xff0c;详解什么是傅立叶变换&#xff0c;为什么要做傅立叶变换等&#xff0c;帮助记忆和理解&#xff0c;目的当然是标题所说&#xff1a;让你永远忘不了傅里叶变换这个公式。另&#xff0c;这篇博客…

MySQL之Server层的内存结构

前言 本文已收录在MySQL性能优化原理实战专栏&#xff0c;点击此处浏览更多优质内容。 前面的文章我们介绍了InnoDB存储引擎的一些内存、内存磁盘的结构以及工作原理&#xff0c;今天我们就来看一下关于MySQL Server层的一些内存结构。 目录 一、Binlog Cache1.1 Binlog Cache工…