SpringBoot(依赖管理和自动配置)
文章目录
- 1.基本介绍
- 1.springboot是什么?
- 2.快速入门
- 1.需求分析
- 2.环境配置
- 1.确认开发环境
- 2.创建一个maven项目
- 3.依赖配置 pom.xml
- 4.文件目录
- 5.MainApp.java (启动类,常规配置)
- 6.HelloController.java (测试Controller)
- 7.运行启动类
- 8.浏览器向Conroller发送请求
- 3.快速入门小结
- 1.SpringBoot跟SSM的关系
- 2.pom.xml依赖关系图
- 3.Sping,SpringMVC,SpringBoot的关系
- 4.约定优于配置
- 2.依赖管理和自动配置
- 1.版本仲裁
- 1.什么是依赖管理?
- 2.查看SpringBoot父项目的默认依赖版本
- 1.pom.xml 找到springboot父工程
- 2.找到父工程的依赖
- 3.所有依赖的默认版本
- 3.自己指定依赖版本
- 1.方式一:在pom.xml中指定版本
- 2.方式二:在pom.xml使用 `properties`标签指定 version
- 2.starter场景启动器
- 1.基本介绍
- 2.依赖树
- 3.SpringBoot自动配置核心依赖
- 4.官方启动器(spring-boot开头)
- 5.第三方启动器
- 3.自动配置
- 1.基本介绍
- 2.获取ioc容器,查看SpringBoot自动配置的bean
- 3.SpringBoot默认扫描包
- 4.修改默认扫描包
- 1.需求分析
- 2.修改启动类注解,增加要扫描的包
- 3.启动测试
- 5.修改默认配置 `resources\application.properties`
- 1.基本介绍
- 2.创建一个resources\application.properties文件
- 3.根据SpringBoot的配置大全找到对应的配置并修改
- 4.关于application.properties配置文件的解释
- 5.自定义配置
- 6.SpringBoot常用配置一览
- 7.解读SpringBoot是从哪里读取的配置文件
- ctrl + n 进入ConfigFileApplicationListener
- 8.按需加载原则
- 1.基本介绍
- 2.autoconfigure包管理着所有的starter
- 9.关于xxxAutoConfiguration,xxxProperties,application.properties的关系
- 1.简要介绍
- 2.查看源码
- 3.debug展示ioc容器
1.基本介绍
1.springboot是什么?

2.快速入门
1.需求分析


2.环境配置
1.确认开发环境

2.创建一个maven项目

3.依赖配置 pom.xml
<!--导入springboot父工程--><parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.5.3</version></parent><dependencies><!--配置maven项目场景启动器,自动导入和web相关的包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>

4.文件目录

5.MainApp.java (启动类,常规配置)
package com.sun.springboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author 孙显圣* @version 1.0*/
//表示是一个springboot项目
@SpringBootApplication
public class MainApp {public static void main(String[] args) {//启动springbootSpringApplication.run(MainApp.class, args);}
}
6.HelloController.java (测试Controller)
package com.sun.springboot.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** @author 孙显圣* @version 1.0*/
@Controller //仍然是spring注解
public class HelloController {@ResponseBody@RequestMapping("/hello")public String hello() {return "hello, springboot";}
}
7.运行启动类

8.浏览器向Conroller发送请求

3.快速入门小结
1.SpringBoot跟SSM的关系

2.pom.xml依赖关系图


3.Sping,SpringMVC,SpringBoot的关系

4.约定优于配置

2.依赖管理和自动配置
1.版本仲裁
1.什么是依赖管理?

2.查看SpringBoot父项目的默认依赖版本
1.pom.xml 找到springboot父工程

2.找到父工程的依赖

3.所有依赖的默认版本

3.自己指定依赖版本
1.方式一:在pom.xml中指定版本

2.方式二:在pom.xml使用 properties标签指定 version


2.starter场景启动器
1.基本介绍

2.依赖树

3.SpringBoot自动配置核心依赖

4.官方启动器(spring-boot开头)

5.第三方启动器

3.自动配置
1.基本介绍

2.获取ioc容器,查看SpringBoot自动配置的bean


3.SpringBoot默认扫描包

4.修改默认扫描包
1.需求分析


2.修改启动类注解,增加要扫描的包

3.启动测试

5.修改默认配置 resources\application.properties
1.基本介绍

2.创建一个resources\application.properties文件

3.根据SpringBoot的配置大全找到对应的配置并修改

4.关于application.properties配置文件的解释
- 一个配置对应一个类的属性使用alt + b可以查找到对应的配置类
- 对应的配置类会被注入到ioc容器中
5.自定义配置


6.SpringBoot常用配置一览
#端口号
server.port=10000
#应用的上下文路径(项目路径)
server.servlet.context-path=/allModel
#指定 POJO 扫描包来让 mybatis 自动扫描到自定义的 POJO
mybatis.type-aliases-package=com.cxs.allmodel.model
#指定 mapper.xml 的路径
#(application 上配置了@MapperScan(扫面 mapper 类的路径)和 pom.xml 中放行了 mapper.xml 后,
# 配 置 mapper-locations 没 有 意 义 。 如 果 mapper 类 和 mapper.xml 不 在 同 一 个 路 径 下 时 ,
mapper-locations 就有用了)
mybatis.mapper-locations=classpath:com/cxs/allmodel/mapper
#session 失效时间(单位 s)
spring.session.timeout=18000
#数据库连接配置
#mysql 数据库 url
mysql.one.jdbc-url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&useSSL=false
#mysql 数据库用户名
mysql.one.username=
#数据库密码
mysql.one.password=
#线程池允许的最大连接数
mysql.one.maximum-pool-size=15
#日志打印:日志级别 trace<debug<info<warn<error<fatal 默认级别为 info,即默认打印 info 及其以
上级别的日志
#logging.level 设置日志级别,后面跟生效的区域,比如 root 表示整个项目,也可以设置为某个包下,
也可以具体到某个类名(日志级别的值不区分大小写)
logging.level.com.cxs.allmodel.=debug
logging.level.com.cxs.allmodel.mapper=debug
logging.level.org.springframework.web=info
logging.level.org.springframework.transaction=info
logging.level.org.apache.ibatis=info
logging.level.org.mybatis=info
logging.level.com.github.pagehelper = info
logging.level.root=info
#日志输出路径
logging.file=/tmp/api/allmodel.log
#配置 pagehelper 分页插件
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
#jackson 时间格式化
spring.jackson.serialization.fail-on-empty-beans=false
#指定日期格式,比如 yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#指定日期格式化时区,比如 America/Los_Angeles 或者 GMT+10
spring.jackson.time-zone=GMT+8
#设置统一字符集
spring.http.encoding.charset=utf8
#redis 连接配置
# redis 所在主机 ip 地址
spring.redis.host=
#redis 服务器密码
spring.redis.password=
#redis 服务器端口号
spring.redis.port=
#redis 数据库的索引编号(0 到 15)
spring.redis.database=14
## 连接池的最大活动连接数量,使用负值无限制
#spring.redis.pool.max-active=8
#
## 连接池的最大空闲连接数量,使用负值表示无限数量的空闲连接
#spring.redis.pool.max-idle=8
#
## 连接池最大阻塞等待时间,使用负值表示没有限制
#spring.redis.pool.max-wait=-1ms
#
## 最小空闲连接数量,使用正值才有效果
#spring.redis.pool.min-idle=0
#
## 是否启用 SSL 连接. ##spring.redis.ssl=false
#
## 连接超时,毫秒为单位
#spring.redis.timeout= 18000ms
#
## 集群模式下,集群最大转发的数量
#spring.redis.cluster.max-redirects=
#
## 集群模式下,逗号分隔的键值对(主机:端口)形式的服务器列表
#spring.redis.cluster.nodes=
#
## 哨兵模式下,Redis 主服务器地址
#spring.redis.sentinel.master=
#
## 哨兵模式下,逗号分隔的键值对(主机:端口)形式的服务器列表
#spring.redis.sentinel.nodes= 127.0.0.1:5050,127.0.0.1:506
7.解读SpringBoot是从哪里读取的配置文件
ctrl + n 进入ConfigFileApplicationListener

8.按需加载原则
1.基本介绍

2.autoconfigure包管理着所有的starter

9.关于xxxAutoConfiguration,xxxProperties,application.properties的关系
1.简要介绍
- xxxProperties这个单例bean的属性就是配置,读取application.properties来修改默认的配置
- xxxAutoConfiguration这个单例bean的属性中有xxxProperties,通过依赖注入获取到xxxProperties的bean对象从而实现自动装配
2.查看源码


3.debug展示ioc容器

相关文章:
SpringBoot(依赖管理和自动配置)
文章目录 1.基本介绍1.springboot是什么?2.快速入门1.需求分析2.环境配置1.确认开发环境2.创建一个maven项目3.依赖配置 pom.xml4.文件目录5.MainApp.java (启动类,常规配置)6.HelloController.java (测试Controller&a…...
cad怎么转换成黑白的pdf图纸?分享3个常用的软件!
在工程设计、建筑、机械制造等领域,CAD图纸的应用非常广泛。然而,有时出于某些需要,我们可能需要将CAD图纸转换为黑白的PDF格式。那么,如何实现这一转换呢?本文将为您详细介绍几种常用的转换软件及其操作步骤。 迅捷CA…...
maven本地仓库依赖上传到远程仓库
本地仓库上传到远程仓库 批量上传: 批量本地仓库依赖(jar包)上传脚本: #!/bin/bash # copy and run this script to the root of the repository directory containing files # this script attempts to exclude uploading itse…...
ISIS多区域实验简述
为支持大型路由网络,IS-IS在路由域内采用两级分层结构。 IS-IS网络中三种级别的路由设备:将Level-1路由设备部署在区域内,Level-2路由设备部署在区域间,Level-1-2路由设备部署在Level-1和Level-2路由设备的中间。 实验拓扑图&…...
go语言基础笔记
1.基本类型 1.1. 基本类型 bool int: int8, int16, int32(rune), int64 uint: uint8(byte), uint16, uint32, uint64 float32, float64 string 复数:complex64, complex128 复数有实部和虚部,complex64的实部和虚部为32位,complex128的实部…...
kettle 9.4和Pentoho 9.4下载及安装方法简介
kettle 9.4和Pentoho 9.4下载及安装方法简介 下载地址: https://sourceforge.net/projects/pentaho/files/ 下载步骤: #------------- 一、点击选项卡:summary/ 二、点击第一行链接 https://www.hitachivantara.com/en-us/products/pentaho…...
社交革命的引领者:探索Facebook如何改变我们的生活方式
1.数字社交的兴起 随着互联网的普及,社交媒体成为我们日常生活的重要组成部分。Facebook作为其中的先驱,从最初的社交网络演变成了一个拥有数十亿用户的全球化平台。它不仅改变了我们与世界互动的方式,还深刻影响了我们的社交习惯、人际关系以…...
常用的推荐算法
推荐系统在帮助用户发现可能感兴趣的产品、服务或信息方面发挥着重要作用。下面是一些常用的推荐算法: 1. 协同过滤 用户基于协同过滤(User-Based Collaborative Filtering) 基于用户之间的相似性为用户推荐物品。算法会找出与目标用户兴趣…...
使用Python进行图片格式转化/分辨率转化
一.下载python PIY插件库 PIP下载命令: pip install pillow -i https://mirrors.aliyun.com/pypi/simple PIY插件库:pillow Installation - Pillow (PIL Fork) 10.3.0.dev0 documentation 二.分辨率转化 from PIL import Image import osresolution (1024, 1024) with Image…...
植物神经功能紊乱患者每天从5片黛力新减少至2片,只因找对了治疗方法!
植物神经功能紊乱是一种常见的心理疾病,其症状包括焦虑、失眠、疲劳、头痛、胃肠不适等,给患者带来很大的困扰。然而,这种疾病是可以治疗的。本文将介绍一位植物神经功能紊乱患者的治疗经历,希望能够帮助更多的人了解和治疗此病。…...
SpringSecurity 快速入门
文章目录 1. 认证授权概述1.1 认证授权概念1.1.1 认证1.1.2 授权 1.2 权限数据模型1.3 RBAC权限模型1.3.1 介绍1.3.2 基于角色访问控制1.3.3 基于资源访问控制 1.4 常见认证方式1.4.1 Cookie-Session1.4.2 jwt令牌无状态认证 1.5 技术实现 2. SpringSecurity入门2.1 介绍2.2 入…...
MySQL--执行一条 select 语句,期间发生了什么?
执行一条 SQL 查询语句,期间发生了什么? 连接器:建立连接,管理连接、校验用户身份;查询缓存:查询语句如果命中查询缓存则直接返回,否则继续往下执行。MySQL 8.0 已删除该模块;解析 …...
DeepL:word文档导出后不能编辑
参考解决用DeepL翻译文档后不能编辑问题_deepl翻译出来的文档怎么编辑-CSDN博客 1、将deepL导出的word文档另存为.xml文件 2、将.xml文件以txt格式打开,查找内容:<w:documentProtection,删除整个标签(包括<w: ...>&…...
PCL 约束Delaunay三角网(版本二)
目录 一、算法概述二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法概述 PCL 点云Delaunay三角剖分一文给出了PCL中Delaunay三角网算法的基础用法。本文在基础用法的基…...
位运算#蓝桥杯
位运算#蓝桥杯 文章目录 位运算#蓝桥杯1、小蓝学位运算2、异或森林3、位移4、笨笨的机器人5、博弈论 1、小蓝学位运算 #include<bits/stdc.h> using namespace std; using LL long long; const LL N 1e97; template<int kcz> struct ModInt { #define T (*this)…...
Python yield from
yield from是Python生成器(generator)中的一个语法,用于简化生成器的操作。它可以使一个生成器委托部分操作给另一个生成器,从而简化代码。yield from在Python 3.3及更高版本中被引入。 在使用yield from之前,我们需要…...
Atcoder TUPC 2023(東北大学プログラミングコンテスト 2023)E. And DNA(矩阵快速幂+拆位讨论)
题目 长为n(3<n<1e9)的数组,第i个数ai在[0,m](m<1e9)之间 对于i∈[1,n],均满足a[i](a[i-1]&a[i1])m,求这样可能的数组的方案数 特别地,认为a[0]a[n],a[n1]a[1],即这个数组是个环形的数组 思路来源 官…...
Matlab/simulin光伏发电直流串联故障电弧模型仿真
参考文献 模型复现...
4款实用性前端动画特效分享(附在线演示)
分享4款非常不错的项目动画特效 其中有jQuery特效、canvas特效、CSS动画等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 全屏图片视差旋转切换特效 基于anime.js制作全屏响应式的图片元素布局,通过左…...
LeetCode -- 76. 最小覆盖子串
1. 问题描述 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量…...
2025年终极指南:PlayIntegrityFix让你的Root设备完美通过Google认证
2025年终极指南:PlayIntegrityFix让你的Root设备完美通过Google认证 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix 还在为Root后的Android设备无法正…...
7个革命性策略:戴森球计划工厂蓝图全生命周期管理指南
7个革命性策略:戴森球计划工厂蓝图全生命周期管理指南 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 想要在戴森球计划中建立高效工厂却总是遭遇物流瓶颈&…...
市面上有哪些是真正性价比高的降AIGC软件(轻松压低AI生成疑似率)
最崩溃的不是查重难题,而是查重达标却AI率超标亮红灯!很多工具只会简单同义词替换、浅层改字,根本洗不掉AI专属句式、行文逻辑和高频模板话术,学校AIGC检测一查一个准,论文直接翻车。 本篇结合全网实测数据,…...
ESP32如何实现专业级音频录制?探索开源录音解决方案
ESP32如何实现专业级音频录制?探索开源录音解决方案 【免费下载链接】esp32_SoundRecorder ESP32 Sound recorder with simple code in arduino-esp32. (I2S interface) 项目地址: https://gitcode.com/gh_mirrors/es/esp32_SoundRecorder 在物联网和嵌入式开…...
洛雪音乐音源终极指南:如何免费获取全网高品质音乐资源
洛雪音乐音源终极指南:如何免费获取全网高品质音乐资源 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否厌倦了在各个音乐平台之间切换,只为寻找一首高品质的音乐&…...
Kali Linux 2024.2 环境下,用 Python 脚本复现一次 DDoS 攻击实验(仅供学习防御)
Kali Linux 2024.2环境下Python脚本模拟DDoS攻击实验与防御研究 在网络安全领域,理解攻击原理是构建有效防御体系的基础。本文将带您在Kali Linux 2024.2环境中,通过Python脚本模拟一次DDoS攻击实验,重点分析攻击流量特征,并探讨如…...
2026年转型风口:理发店转战植物染发,能占据市场前10%吗?
2026年,理发店转型的风口已经悄然来临。据数据显示,植物染发和养护市场增速保持在15%以上,而白发脱发人群的比例不断增大,这无疑给众多理发店提供了巨大的转型机会。本文将通过具体的数据、案例和观点,探讨理发店转型植…...
【健身SaaS厂商紧急预警】:AI Agent接入后用户留存率提升41%的关键3个埋点逻辑
更多请点击: https://kaifayun.com 第一章:AI Agent健身行业应用的范式迁移与价值重定义 传统健身服务长期受限于人力密度、响应延迟与个性化瓶颈,而AI Agent的深度介入正推动行业从“标准化课程交付”跃迁至“持续演化的健康共生体”。这一…...
sudo提权漏洞-Baron Samedit (sudo堆缓冲区溢出漏洞)复现(CVE-2021-3156)
from: https://blog.csdn.net/mooyuan/article/details/156277001 注意点: 下载POC的方法不可行 可以下载的地址:https://github.com/blasty/CVE-2021-3156 文章中:宿主机访问172.17.0.1:8888环境确认服务已经搭建成功 此方法测试不可行…...
ARMv8调试状态下LDR指令未定义问题解析
1. 问题背景与现象分析在ARMv8-A架构的调试过程中,开发者经常会遇到一个令人困惑的现象:当外部调试器暂停核心执行后,向EDITR寄存器注入LDR X1, [X0]指令(机器码0xf9400001)时,Tarmac日志显示该指令被标记为…...
