【SpringBoot入门】SpringBoot的配置
SpringBoot的配置文件
- 一、SpringBoot配置文件分类
- 二、yaml 概述
- 三、多环境配置
- 四、@Value 和 @ConfigurationProperties
- 五、总结
一、SpringBoot配置文件分类
SpringBoot 是基于约定的,很多配置都是默认的(主方法上@SpringBootApplication注解的子注解@EnableAutoConfiguration实现的,是在META-INF/spring.factories中的自动配置了,可以看狂神的运行原理的解释,它是boot2解析,boot3里面实现用的更多的是流(Stream),其他没怎么变)。
但是如果想使用自己的配置替换默认配置或添加其他配置的话,可以使用application.properties或者application.yml(application.yaml)进行配置。
- 遵循框架的规则,默认配置文件名称:application
- 在同一级目录下的优先级:properties>yml>yaml,这个如果没看源码也可以通过测试得出。
二、yaml 概述
首先需要明白的yaml是一种语言,是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。百度上解释是它是以数据作为中心,而不是以标记语言为重点!.yml 是用YAML语言编写的配置文件,YAML的诞生是参考JSON,XML和SDL等语言。
居然是语言,就有它的语法、格式。
下面给出是.yml配置文件的案例:
house:family:name: Doeparents:- John- Janechildren:- Paul- Mark- Simoneaddress:number: 34street: Main Streetcity: Nowheretownzipcode: 12345
- YAML语法特点
- #可以用来注释
- 每个散列表的成员用冒号+空白": "分开键值和内容。(空格必须存在)
- 使用缩进表示层级关系,但是不能使用TAB键,只允许空格
- 结构可以通过缩进来表示,连续的成员通过减号"-“来表示,或者使用”{}"
注意:
“ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思; 比如 :name: “kuang \n shen” 输出 :kuang 换行 shen
‘’ 单引号,会转义特殊字符 , 特殊字符最终会变成和普通字符一样输出 比如 :name: ‘kuang \n shen’ 输出 :kuang \n shen
(引用狂神说的注意)
下面写一个 application.yml 配置文件,进行测试
server:port: 9000 #修改端口号servlet:context-path: /xxx #修改上下文路径
需要注意的是,它还可以进行参数引用,使用${??},例如:
port: 9001
server:port: ${port}servlet:context-path: /xxx
.properties小编觉得应该都会用,就不多写了,yml是被推荐的配置方式,更直观吧。
三、多环境配置
在项目进行过程中,除了有开发环境,还有测试环境,上线环境等。每个环境有不同的配置信息,例如端口,上下文件,数据库的url,用户名、密码等等。
使用多环境配置文件,可以方便的切换不同的配置。
使用方式:创建多个配置文件,名称规则:application-环境名称.properties(yml)
例如:
创建开发环境的配置文件:application-dev.properties(application-dev.yml)
创建测试使用的配置文件:application-test.properties(application-test.yml)
配置下面的语句就可以实现环境切换:
.yml:
spring:profiles:active: 环境名称
.properties
spring.profiles.active=环境名称
测试:
准备好了三个配置文件
application.yml的内容
spring:profiles:active: dev
server:port: 8080
application-dev.yml的内容
server:port: 9001servlet:context-path: /yyy
测试结果

可以观察出:环境进行了切换后,application.yml中的后面内容不起效.
四、@Value 和 @ConfigurationProperties
下面是application.yml配置。
server:port: 8082servlet:context-path: /demo# 配置key=value
school:name:- 合肥师范- 武汉大学address: 合肥
- @Value测试
* @ConfigurationProperties测试

如果直接这样,那么配置文件中的name注入不进去(会为null),因为配置文件中的是多成员。
如果是这样那么就可以注入成功。数组也是可以的。


注意:
@ConfigurationProperties注解的使用,一定要记得要对prefix属性进行赋值(默认是空字符串) ,它会在配置文件中查询prefix这个元素,然后进行“映射”。
下面可以看看狂神说这个图,对@Value和@ConfigurationProperties进行个对比

五、总结
小编写的这篇博客没有对properties配置进行说明,其实用法是一样的。而且SpringBoot官方推荐我们使用yaml进行配置,所以这里讲解和例子都是用的yml配置。
如果我们在某个业务中,只需要获取配置文件中的某个值,可以使用一下 @value;
如果说,我们专门编写了一个JavaBean来和配置文件进行一一映射,就直接@ConfigurationProperties,不要犹豫!因为它不单单可以做到简单类型的映射。
推荐文献:
狂神说SpringBoot03:yaml配置注入
相关文章:
【SpringBoot入门】SpringBoot的配置
SpringBoot的配置文件一、SpringBoot配置文件分类二、yaml 概述三、多环境配置四、Value 和 ConfigurationProperties五、总结一、SpringBoot配置文件分类 SpringBoot 是基于约定的,很多配置都是默认的(主方法上SpringBootApplication注解的子注解Enabl…...
react 学习整理
如何使用引号传递字符串 常见的 <imgclassName avatersrc http://...alt gregorio y />或者声明变量来保存 export default function XXX(){ const avator avator const description gergorio y return (<image className XXXsrc {avator}alt {alt} />)…...
物理引擎系统-ode
物理引擎系统-ode 目录 物理引擎系统-ode 一、物理引擎系统-ode——processIslands 二、物理引擎系统-ode——processIslands 三、物理引擎系统-ode——processIslands 四、物理引擎系统-ode——processIslands 五、物理引擎系统-ode——processIslands 一、物理引…...
函数设计—参数规则
【规则1-1】参数的书写要完整,不要贪图省事只写参数的类型而省略参数名字。 如果函数没有参数,则用 void 填充。 例如: void SetValue(int width, int height); // 良好的风格 void SetValue(int, int); // 不良的风格 float GetValue(…...
rsync远程同步
目录 rsync rsync简介 rsync优点 同步方式 rsync名词解释 rsync工作原理 常用rsync命令 配置源的两种表达方法 远程同步实操 如何不想每次登录的时候输入密码 同步删除文件 定时完成操作 格式二 指定资源下载到/opt进行备份 通过信道协议同步数据编辑编辑 rs…...
中国大陆IP段(仅大陆地区)【2020-07-24】
中国大陆IP段(仅大陆地区)【2020-07-24】 1.1.8.0/24 1.2.4.0/24 1.8.1.0/24 1.8.8.0/24 1.18.128.0/24 1.24.0.0/13 1.45.0.0/16 1.48.0.0/14 1.56.0.0/13 1.68.0.0/14 1.80.0.0/13 1.88.0.0/14 1.92.0.0/20 1.93.0.0/16 1.94.0.0/15 1.119.0.0/17 1.11…...
从零开始的嵌入式Linux生活(一) 背景介绍
文章目录前言本系列文章的主要思想:本系列文章包括:一、什么是嵌入式开发二.嵌入式开发 - 由便宜到贵三.嵌入式开发的基本原理一个美好的假设:再来一个美好的假设美好的假设被打破了 - RTOS系统美好的假设又被打破了 - 嵌入式Linux系统老板飘…...
后缀为whl的文件是什么?如何安装whl文件?学习一下(22)
小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 欢迎和猫妹一起,趣味学Python。 今日主题 了解并使用Pyhton的库安装包文件whl。 什么是whl文件 whl格式本质上是一个压缩包,里面包含了py文件&am…...
整合Juit
整合Juit 1.SpringBoot整合Juit SpringBootTest class Springboot04JuitApplicationTests {AutowiredBookDao bookDao;Testvoid contextLoads() {System.out.println("test................");bookDao.save();} } 名称:SpringBootTest 类型&…...
C#,码海拾贝(11)——拉格朗日(Lagrange)三点式曲面插值算法,《C#数值计算算法编程》源代码升级改进版
本文开始是曲面插值(Surface Interpolation,也称作:二维插值,二元插值)。 数值计算三点式 数值计算三点式是一种常见的数值计算方法,它是通过对已知函数在某个点及其左右两个点处的函数值进行数值插值&…...
CentOS7系统安装MySQL 5.7
目录一、官网下载mysql5.7二、检查mysql依赖环境三、安装MySQL 5.7.281.将安装程序拷贝到/opt目录下2.安装四个安装包3.查看mysql版本4.服务的初始化5.启动mysql,并查看状态(加不加.service后缀都可以)6.查看mysql服务是否自启动(默认自启动)…...
基于粒子群算法优化BP神经网络的高炉si预测,PSO-BP
目录 摘要 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 粒子群算法的原理及步骤 基于粒子群算法改进优化BP神经网络的用电量预测 代码 效果图 结果分析 展望 参考 摘要 一般用启发式算法改进B…...
STM32输出PWM波控制电机转速,红外循迹避障智能车+L298N的详细使用手册、接线方法及工作原理,有代码
智能循迹红外避障小车 本设计的完整的系统主要包括STM32单片机最小系统、L298n电机驱动,超声波 ,舵机 ,红外模块等。寻迹小车相信大家都已经耳熟能祥了。 我们在这里主要讲一下L298N驱动电机和单片机输出PWM控制电机转速。 本设计软件系统采…...
3、AI的道德性测试
AI的道德性 AI系统的道德性如何保障是一个重要而复杂的问题,涉及到人工智能的发展、应用、监管、伦理、法律等多个方面。保障AI系统的道德性是一个很重要的问题,因为AI系统不仅会影响人类的生活和工作,也会涉及人类的价值观和伦理道德原则。针对这部分,也需要测试AI系统是…...
银行数字化转型导师坚鹏:银行业务需求分析师技能快速提升之道
银行业务需求分析师技能快速提升之道 ——以推动银行战略目标实现为核心,实现知行果合一课程背景: 很多银行都在开展业务需求分析工作,目前存在以下问题急需解决:不知道银行业务需求分析师掌握哪些关键知识?不清楚…...
C++IO流
文章目录一、CIO流体系二、C标准IO流三、C文件IO流1.ifstream2.ofstream一、CIO流体系 C流是指信息从外部输入设备向计算机内部输入,从内存向外部输出设备输出的过程,这种输入输出的过程非常形象地被称为流的概念。IO流指的就是输入输出流。 我们平时对…...
交友项目【后端环境搭建】
目录 1:环境搭建 1.1:MYSQL数据库 1.1.1:导入相应的sql 1.2:Linux中的docker-compose方法集中部署 1.2.1:介绍 1.3:IDEA设置 1.3.1:基本要求 1.3.2:设置项目编码格式 1.3.3&…...
大事务问题解决方案
文章目录 大事务引发的问题解决办法少用@Transactional注解将查询(select)方法放到事务外事务中避免远程调用事务中避免一次性处理太多数据非事务执行异步处理总结大事务引发的问题 1、死锁 2、回滚时间长 3、并发情况下数据库连接池被占满 4、锁等待 5、接口超时 6、数据库主…...
python开启局域网传输
python开启局域网传输 1.找自己的IP 在命令提示窗口输入:ipconfig <----找自己的IP地址 2.创建要传输文件的文件夹(只允许在该文件夹下访问传输) a.复制文件夹路径 b.在命令提示窗口cd打开新创建的文件夹 cd “C:\Users\86151\Desktop…...
病毒丨熊猫烧香病毒分析
作者丨黑蛋 一、病毒简介 病毒名称: 熊猫烧香 文件名称: 40fee2a4be91d9d46cc133328ed41a3bdf9099be5084efbc95c8d0535ecee496 文件格式: EXEx86 文件类型(Magic): MS-DOS executable 文件大小: 29.30KB SHA256&…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
