YAML在Spring Boot中的应用

ops/2024/10/25 18:24:00/

1. 基本语法

YAML使用缩进来表示层级关系,通常使用空格进行缩进(推荐使用2个空格)。

基本语法示例:

key: value
nested:key: value
list:- item1- item2

2. 配置文件命名

在Spring Boot中,YAML配置文件通常命名为 application.yml,放置在 src/main/resources 目录下。

3. 常见配置示例

3.1 数据源配置
spring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: userpassword: passdriver-class-name: com.mysql.cj.jdbc.Driver
3.2 服务器配置
server:port: 8080servlet:context-path: /api
3.3 日志配置
logging:level:root: INFOorg.springframework.web: DEBUGfile:name: app.log
3.4 自定义属性
app:name: My Applicationdescription: This is my Spring Boot applicationversion: 1.0.0

4. 多环境配置

YAML允许在单个文件中定义多个配置profiles:

spring:profiles:active: dev---
spring:config:activate:on-profile: dev
server:port: 8080---
spring:config:activate:on-profile: prod
server:port: 80

5. 列表和数组

YAML支持列表和数组的简洁表示:

my:servers:- dev.example.com- prod.example.comports: [8080, 8081, 8082]

6. 复杂对象

YAML可以表示复杂的嵌套结构:

person:name: John Doeage: 30address:street: 123 Main Stcity: New Yorkcountry: USAhobbies:- reading- swimming

7. 使用占位符和引用

YAML支持使用占位符和引用其他配置值:

app:name: MyAppdescription: Welcome to ${app.name}
db:connection: "Database connection for ${app.name}"

8. 外部化配置

Spring Boot支持从外部YAML文件加载配置:

spring:config:import: optional:file:./config/app-config.yml

9. 配置属性类

可以创建配置属性类来映射YAML配置:

java">@ConfigurationProperties(prefix = "app")
@Component
public class AppProperties {private String name;private String description;// getters and setters
}

对应的YAML:

app:name: MyAppdescription: App Description

10. 集合和Map的配置

YAML可以轻松配置复杂的集合和Map结构:

app:users:- name: user1role: ADMIN- name: user2role: USERsettings:timeout: 3000retries: 5

11. 使用锚点和别名

YAML支持使用锚点(&)和别名(*)来重用配置:

defaults: &defaultstimeout: 30retries: 3service1:<<: *defaultsurl: http://service1.example.comservice2:<<: *defaultsurl: http://service2.example.com

12. 激活profiles

可以在YAML中指定要激活的profiles:

spring:profiles:active:- dev- local

13. 条件配置

使用SpEL表达式进行条件配置:

my:property: "This is always set"conditional-property: "${my.property} (set only if 'dev' profile is active)"

14. 使用环境变量

YAML配置可以引用环境变量:

app:secret: ${APP_SECRET}

15. 配置随机值

Spring Boot提供了生成随机值的功能:

app:secret: ${random.uuid}number: ${random.int}

http://www.ppmy.cn/ops/94711.html

相关文章

linux运维练习题(三)

11、存储产品 网络附加存储 NFS&#xff0c;Samba&#xff0c;FTP 直接网络存储 ISCSI 存储区域网络 12、DNS的工作过程&#xff0c;当我们访问百度&#xff0c;敲下回车的一瞬间DNS做了什么操作&#xff1f; client --> 本机缓存 --> hosts文件 --> 本地DNS服务器…

DNS的反向解析

反向解析 DNS的反向解析&#xff08;Reverse DNS Lookup&#xff0c;通常缩写为rDNS&#xff09;是指通过IP地址查找与之对应的域名的过程。与正向解析&#xff08;通过域名查找IP地址&#xff09;相对&#xff0c;反向解析的主要用途是验证IP地址与域名的关联性&#xff0c;常…

第五届IEEE先进电气和能源系统国际会议(AEES 2024)即将召开!

第五届先进电气和能源系统国际会议将于2024年11月29日至12月1日在中国兰州召开&#xff0c;欢迎参加&#xff01; 本届会议关注先进电气和能源系统的新理论及其应用&#xff0c;为相关领域的技术及相关研究领域的专家、学者交流最新研究成果、探讨学术发展方向提供一个广泛的交…

Vue如何优雅地添加和去除水印

目录 安装 watermark-plus 使用 watermark-plus 添加水印 1. 导入库 2. 添加文本水印 3. 添加图片水印 4. 水印配置选项 注意事项 核心特性 实际应用场景 代码示例 扩展与限制 watermark-plus 是一个实用的 JavaScript 库,它可以方便地帮助开发者在网页上添加水印。…

《AI视频类工具之十三——​ Artflow》

一.简介 官网:https://app.artflow.ai/character-builder?feature=actors Artflow是一款功能强大的AI动画角色生成工具,它集成了深度学习技术,为用户提供了从角色生成、动画效果制作到场景与背景设计的全方位支持。 二.功能介绍 Artflow是一款功能强大的AI动画角色生成…

“一基双台三智“ 中电金信智慧监督解决方案构筑国央企风控堡垒

近年来&#xff0c;国务院国资委先后下发《关于进一步排查中央企业融资性贸易业务风险的通知》、《关于规范中央企业贸易管理严禁各类虚假贸易的通知》等各类监管法规&#xff0c;并在2024年初中央企业工作会议中提出对财务数智化转型及重点领域风险把控的要求&#xff0c;国资…

思科三层交换机实现EIGIP路由协议6

#路由协议实现# #任务六三层交换机实现EIGIP路由协议6# #1配置计算机的IP地址、子网掩码和网关 #2配置Switch-A的名称及其接口IP地址 Switch(config)#hostname Switch-A Switch-A(config)#ip routing Switch-A(config)#int g0/1 Switch-A(config-if)#no switchport Switc…

Postman 问题汇总

1 postman Error: SSL Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE 根因 SSL校验失败&#xff0c;可以在postman设置中关闭ssl校验&#xff0c;自测对ssl无要求。 解决方法 在postman设置中关闭ssl校验&#xff1a;