一、前言

SpringBoot 使用一个全局的配置文件,配置文件名固定的;

·application.properties

·application.yml

配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;

YAMLYAML Ain't Markup Language

YAML A Markup Language:是一个标记语言

YAML isn't Markup Language:不是一个标记语言;

标记语言:

以前的配置文件;大多都使用的是 xxxx.xml文件;

YAML:以数据为中心,比jsonxml等更适合做配置文件;

二、YAML语法

 

 2.1基本语法

k:(空格)v: 表示一对键值对(空格必须有);

以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一层级的

属性和值也是大小写敏感 

2.2 值的写法

字面量: 普通的值(数字,字符串,布尔)

k: v: 字面直接来写

字符串默认不用加上单引号或者双引号

"":双引号,会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

name: "zhangsan \n lisi": 输出; zhangsan 换行 lisi

'':单引号;不会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name:' zhangsan \n lisi': 输出; zhangsan \n lisi 

2.3 对象、数组、Map(属性和值)(键值对)

 

在下一行来写对象的属性和值的关系;注意缩进

对象:(还是k: v的方式)


行内写法 (注意空格)

数组:

 

 

Map :

三、配置文件值注入 

3.1 使用@ConfigurationProperties将值注入到属性中

application.yml配置文件的内容:

server:port: 8082Person:last_name: "xiaobai \n xxx"age: 21birth: 2025/09/22boss: falsemaps: {k1: shuai,k2: ku}lists:-lisi-zhaoliudog: {name: Snax,age: 12}

 

javaBean:

我们可以导入配置文件处理器,以后编写配置就有提示了

<!‐‐导入配置文件处理器,配置文件进行绑定就会有提示‐‐>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐configuration‐processor</artifactId><optional>true</optional>
</dependency>

我们编写一个测试类, 

    @Autowiredprivate Person person;@Testpublic void TestPerson(){System.out.println(person);}

 发现yml里面配置的内容给到了Person类的属性了

3.2 @Value获取值和@ConfigurationProperties获取值比较

3.2.1松散绑定:

 

通过@ConfigurationProperties方法注入值

Person类里的LastName属性 和yml文件中的名字不一样,照样能够注入成功

但是@Value注解必须要精准匹配yml里的键值,才能注入值

 

3.2.2  SpEL表达式

@Value支持计算表达式

 

但是@ConfigurationProperties不支持 

3.2.3 数据校验

我们可以新加一个email属性,并对email属性进行依次数据校验

给email 赋值

分别用这两种注入方式查看结果:

 

@ConfigurationProperties报错了,说明支持数据校验

@Value 直接打印了结果,说明它根本没有数据校验这回事

 

3.2.4 复杂类型封装

复杂类型指的是 Map、对象等类型

我们是直接在yml文件里赋值的,@Vaue无法干这件事

 

3.2.3  @PropertySource @ImportResource @Bean

@PropertySource: 加载指定的配置文件

 

person.properties文件中的内容:

person.lastName=张三${random.uuid}
person.age=${random.int}
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=${person.hello:hello}_dog
person.dog.age=15

运行一下:

说明person.properties文件里的相应值注入了Person里的属性中 

@ImportResource

导入Spring的配置文件,让配置文件里面的内容生效;

Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;

想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上

 在主程序中引入注解,使Bean.xml生效

配置一下Bean.xml吧

我们引入了alibaba中的Druid连接池 

此时我们去测试类里测试,连接池是否引入成功?

 

发现引入成功

还有一种方法,我们在Spring框架中想引入一个配置文件是这样引入的

    @org.junit.Testpublic void test() {ApplicationContext context = new AnnotationConfigApplicationContext(UserProxy.class);UserService userService = (UserService) context.getBean("userserviceimpl");userService.save();}

 

在这里我们用同样的思路验证是否引入了druid连接池

验证: 

引入成功! 

ok,今天小编就分享到这里,希望对你的学习有所帮助哦

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JS】事件类型(可addEventListener监听)

文章目录1. 窗口/视图相关事件2. 鼠标事件3. 键盘事件4. 焦点事件5. 表单事件6. 触摸事件&#xff08;移动端&#xff09;7. 其他重要事件使用示例 // 监听滚动事件 useEffect(() > {const handleScroll () > {console.log("当前滚动位置:", window.scrollY);…

【3GPP】5G专用词汇1

〇、在5G通信领域&#xff0c;类似RRU&#xff08;远端射频单元&#xff09;、UE&#xff08;用户终端&#xff09;、BS&#xff08;基站&#xff09;的专业术语非常丰富&#xff0c;涵盖设备、功能、架构、技术等多个层面。以下是分类整理的常见5G名词及其说明&#xff1a; 一…

基于 FFT + VMD 预处理的 1DCNN‑Informer 双支路并行、多头注意力融合分类模型

1  引言 现代工业设备的运行状态高度复杂、故障类型日趋多样,单一特征处理或单一路径模型常难以兼顾高精度与实时性。本期推出的模型**“FFT+VMD→1DCNN‑Informer→多头注意力”**流水线,将频域分解与时序建模结合,通过双支路并行特征提取和注意力融合,在旋转机械、电力…

ndarray的创建(小白五分钟从入门到精通)

ndarray的创建用途方法语法示例核心作用输出示例基础构造▪ 从 Python 数据结构创建np.array()np.array([[1, 2], [3, 4]])将列表/元组转换为 ndarrayarray([[1, 2], [3, 4]])▪ 复制数组np.copy()np.copy(arr)创建独立副本&#xff08;深拷贝&#xff09;与原数组相同但不共享…

考研数据结构Part1——单链表知识点总结

一、前言单链表是线性表的链式存储结构&#xff0c;作为数据结构中最基础也是最重要的线性结构之一&#xff0c;在考研数据结构科目中占有重要地位。本文将总结带头结点单链表的各项基本操作&#xff0c;包括初始化、插入、删除、查找等&#xff0c;并附上完整C语言实现代码&am…

笔试——Day15

文章目录第一题题目思路代码第二题题目&#xff1a;思路代码第三题题目&#xff1a;思路代码第一题 题目 平方数 思路 判断⼀个数开根号之后左右两个数的平⽅&#xff0c;哪个最近即可 代码 第二题 题目&#xff1a; 分组 思路 枚举所有的结果&#xff0c;找到第一个复合要…

物联网全流程开发记录

问题 有数据采集设备&#xff0c;服务器&#xff0c;上位机用户显示三部分&#xff0c;采集设备将采集的数据发送至服务器。服务器将数据保存&#xff0c;上位机读取服务器保存的数据库显示。当出现多设备&#xff0c;多用户时&#xff0c;如何通过多设备对应多用户&#xff0c…

【LeetCode 热题 100】46. 全排列——回溯

Problem: 46. 全排列 文章目录整体思路完整代码时空复杂度时间复杂度&#xff1a;O(N * N!)空间复杂度&#xff1a;O(N)整体思路 这段代码旨在解决一个经典的组合数学问题&#xff1a;全排列 (Permutations)。给定一个不含重复数字的数组 nums&#xff0c;它需要找出其所有可能…

AXI接口学习

amba总线的发展axi协议是两个接口之间的点对点的协议&#xff0c;主要是有5个通道。主机在写地址&#xff08;AW&#xff09;通道上发送地址&#xff0c;并在写数据&#xff08;W&#xff09;通道上将数据传输到从机。从机将接收到的数据写入指定地址空间。从机完成写操作&…

Validation - Spring Boot项目中参数检验的利器

Validation - Spring Boot项目中参数检验的利器 什么是Validation Sping Boot官方原文&#xff1a;When it comes to validating user input, Spring Boot provides strong support for this common, yet critical, task straight out of the box.Although Spring Boot support…

云服务器VS虚拟主机:如何抉择?

开篇引入在当今数字化浪潮中&#xff0c;无论是个人站长想要搭建独具风格的博客&#xff0c;展示自己的生活感悟与专业见解&#xff1b;还是中小企业期望构建官方网站&#xff0c;拓展线上业务版图&#xff0c;提升品牌知名度&#xff1b;亦或是大型互联网企业筹备高并发的电商…

不同相机CMOS噪点对荧光计算的影响

摘要&#xff1a;荧光成像是生物医学、材料科学等领域的重要研究手段&#xff0c;其成像质量高度依赖传感器噪声特性。本文系统分析CMOS传感器噪声类型及其对荧光信号计算的影响机制&#xff0c;结合实验数据探讨不同CMOS架构的噪声表现差异&#xff0c;提出针对性优化策略。研…

docker 常见命令使用记录

1. swarm 集群 1. 集群创建 # 创建集群管理节点&#xff0c; --advertise-addr 指定节点管理通信地址&#xff0c;--data-path-addr 指定容器通信地址 docker swarm init --advertise-addr 1.14.138.35 --data-path-addr 1.14.138.35# --advertise-addr 指明当前work节点的…

KRaft 角色状态设计模式:从状态理解 Raft

这些状态类是 Raft 协议行为的核心载体。它们包含转移逻辑 和 节点在特定状态下的所有行为和数据。QuorumState它是 KRaft 客户端实现中状态管理的核心&#xff0c;扮演着“状态机上下文&#xff08;Context&#xff09;”和“状态转换协调者”的关键角色。QuorumState 是整个 …

Linux的磁盘存储管理实操——(上)

一、Linux的设备文件分类 Linux的设备文件分类1、在Linux系统中设备文件是用来与外接交互的接口&#xff0c;它将内核中的硬件设备与文件系统关联起来&#xff0c;让用户可以像操作普通文件一样来操作硬件设备&#xff0c;同时也为开发者提供了方便而强大的应用程序接口。 2、L…

内核bpf的实现原理

bpftrace能帮我们干什么&#xff1f;1、统计 tcp连接的生命时长、2、统计mysql执行一条sql语句的时间3、统计redis执行命令的时间、 4、对文件进行一次读或者写的时间。 常用命令&#xff1a; bpftrace -e Begin { printf("hello\n"); } bpftrace -l *enter_accep…

前端npm配置Nexus为基础仓库

步骤&#xff1a; 一、Nexus仓库配置 新增npm仓库,具体详解见 Nexus私有仓库配置&#xff0c;解释 注&#xff1a;Nexus的版本需要至少3.38以上&#xff0c;不然会出现npm install 时npm的审计功能报错&#xff0c;导致install失败。虽然在3.38以后不会报400错误&#xff0c…

数据结构 之 【排序】(直接插入排序、希尔排序)

目录 1.直接插入排序 1.1直接插入排序的思想 1.2直接插入排序的代码逻辑&#xff1a; 1.3 直接插入排序图解 1.4单趟排序代码(单个元素的排序逻辑) 1.5完整排序代码 1.6直接插入排序的时间复杂度与空间复杂度 1.7直接插入排序的优势 2.希尔排序(缩小增量排序) 2.1…

Laravel 后台登录 403 Forbidden 错误深度解决方案-优雅草卓伊凡|泡泡龙

Laravel 后台登录 403 Forbidden 错误深度解决方案-优雅草卓伊凡|泡泡龙一顿操作猛如虎&#xff0c;一看结果250&#xff0c;必须记录&#xff0c;必须记录&#xff0c;&#xff01;今天弄了很久关于我们2023年的产品系统蜻蜓T会议系统专业版&#xff0c;然后终于搞好了密码也重…

Newline全场景方案闪耀2025中国智慧生活大会

7月15日 — 16日&#xff0c;由中国电子视像行业协会等权威机构指导的2025 CIC中国智慧生活大会在京召开。Newline作为视像协会PID分会副会长单位携全场景智慧办公解决方案亮相&#xff0c;首席营销官李宇鹏受邀出席领袖圆桌环节&#xff0c;与腾讯云、京东方、创维、TCL、小猿…