在spring boot使用总结(九) 使用yaml语言来写配置文件
yaml是专门用来写配置文件的语言。使用yaml来写配置文件扩展性比较强而且十分方便。spring boot支持使用yaml语言来写配置文件,使用snakeyaml库来读取配置文件。spring boot关于yaml详细用法可以参考官方文档。
下面列举一些项目中常用的写法,帮你快速入门。
1 写yml文件的基本规则
a) 层级关系用缩进表示,相同的缩进表示的层级关系相同。
b) 缩进只能使用空格,不能使用tab键
例如在properties文件中有如下属性:
spring. profiles.active=test
spring. jackson.default-property-inclusion=non_default
在yml文件要写成这样:
spring:
profiles:
active: test
jackson:
default-property-inclusion: non_default
2 支持数组类型,数组成员前面加 -
city:
- 北京
- 上海
- 深圳
- 南京
- 重庆
3 一个yml文件中可以写多个配置文件,配置文件之间用 --分割
spring:
profiles:
active: test
--
spring:
profiles: prod
--
spring:
profiles: test
4 支持别名功能,可以先定义别名,再进行引用。使用& 定义别名,* 引用别名。
testDatabase: &testDatabase
username: test
password: test
driverClassName: com.mysql.jdbc.Driver
test-on-borrow: true
validation-query: SELECT 1
test:
datasource:
url: jdbc:mysql://10.50.10.100:3306/testdb?characterEncoding=utf-8
<<: *testDatabase
上面的代码等同于
testDatabase: &testDatabase
username: test
password: test
driverClassName: com.mysql.jdbc.Driver
test-on-borrow: true
validation-query: SELECT 1
test:
datasource:
url: jdbc:mysql://10.50.10.100:3306/testdb?characterEncoding=utf-8
username: test
password: test
driverClassName: com.mysql.jdbc.Driver
test-on-borrow: true
validation-query: SELECT 1
别名功能在有重复配置的情况下特别有用,可以直接引用,避免写重复的配置。项目中常常遇到要配置多个数据库的情况,一般除了url,用户名,密码,其他的配置都是一样的,利用别名就可以少写重复的配置,也便于后面维护。
注意别名功能只能在同一个配置文件生效。例如如上面所示,在prod文件中定义的别名不能在test文件中被引用。
5 引用变量,引用变量使用${},也可以引用数组的值。可以先定义一下相同的值,在需要的地方直接引用即可。
spring:
profiles:
active: test
country: 中国
city:
- 北京
- 上海
- 深圳
- 南京
- 重庆
--
spring:
profiles: prod
myCountry: ${country}
myCity: ${city[0]}
--
spring:
profiles: test
myCountry: ${country}
myCity: ${city[1]}
6 写长字符串,长字符串可以用"",在换行时使用 \
longStr: "abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg\
abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg\
abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg"
作者:vasthua
链接:http://www.jianshu.com/p/e091df2ff1c4
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
在spring boot使用总结(九) 使用yaml语言来写配置文件的更多相关文章
- spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的?
spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的? 消息中间件在解决异步处理,模块间解耦和,和高流量场景的削峰,等情况下有着很广泛的应用 . 本文将跟大家一起 ...
- Spring Boot 2.X(九):Spring MVC - 拦截器(Interceptor)
拦截器 1.简介 Spring MVC 中的拦截器(Interceptor)类似于 Servlet 开发中的过滤器 Filter,它主要用于拦截用户请求并作相应的处理,它也是 AOP 编程思想的体现, ...
- Spring Boot 系列(九)数据层-集成Spring-data-jpa
实际开发中,不可避免地会对数据进行反复的增删改查操作,然而这部分工作是十分繁琐枯燥的.那么,随即而生的ORM框架就能很好的解决这个问题. 我们常用的ORM框架有:Hibernate.Mybatis.J ...
- 【Spring Boot学习之九】缓存支持
环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.Spring Boot Cache以及整合EhCacheSpring从3.1开始定义了org.springfram ...
- Spring Boot 入门(九):集成Quartz定时任务
本片文章续<Spring Boot 入门(八):集成RabbitMQ消息队列>,关于Quartz定时任务请参考<Quartz的基本使用之入门(2.3.0版本)> spring ...
- Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览
当大潮退去,才知道谁在裸泳..关注公众号[BAT的乌托邦]开启专栏式学习,拒绝浅尝辄止.本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈.MyBatis. ...
- Spring Boot 入门系列(二十五)读取配置文件的几种方式详解!
在项目开发中经常会用到配置文件,之前介绍过Spring Boot 资源文件属性配置的方法,但是很多朋友反馈说介绍的不够详细全面.所以, 今天完整的分享Spring Boot读取配置文件的几种方式! S ...
- Spring Boot系列教程九:Spring boot集成Redis
一.创建项目 项目名称为 “springboot_redis”,创建过程中勾选 “Web”,“Redis”,第一次创建Maven需要下载依赖包(耐心等待) 二.实现 properties配置文件中添加 ...
- Spring Boot教程(九)异步方法
创建工程 在pom文件引入相关依赖: <dependency> <groupId>org.springframework.boot</groupId> <ar ...
随机推荐
- SpringBoot 上传文件如何获取项目工程路径
上传文件时,需要将上传的文件存放于工程路径中,以便前端能够获取文件资源,那如何获取工程路径呢? //获取 SpringBoot 工程中 static 的绝对路径 String serverpath= ...
- Redis()- 布隆过滤器
一.布隆过滤器 布隆过滤器:一种数据结构.由二进制数组(很长的二进制向量)组成的.布隆过滤器可以用于检索一个元素是否在一个集合中.它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识 ...
- GO语言面向对象02---继承
package main import ( "fmt" ) type Dog struct { Name string Age int } func (d *Dog)bite() ...
- Python+Selenium - 定位策略
一个元素定位可能会在多个地方用到,用loc变量接收元素的定位方式和相对路径.使用时再拆包(*loc) loc = (定位方式,'定位方式对应的元素路径') =>元素定位方式及路径 driv ...
- Jmeter- 笔记6 - 负载测试
普通场景介绍 1.线程数:并发用户数 2.Ramp-Up时间:启动时间(线程数的准备时间),在这个时间点结束时,所有用户都已运行起来 3.循环次数:每个线程数都要运行的次数.永远 和 调度器一起使用, ...
- cmodel模拟器开发
cmodel模拟器开发 对于一个公司来说,产品的设计周期就是生命线,一般来说都会在设计功能级仿真的c-model后直接转向RTL设计. 在目前的技术下,做cycle-by-cycle的设计和直接RTL ...
- Mobileye高级驾驶辅助系统(ADAS)
Mobileye高级驾驶辅助系统(ADAS) Mobileye is the global leader in the development of vision technology for Adv ...
- CUDA 7 Stream流简化并发性
CUDA 7 Stream流简化并发性 异构计算是指高效地使用系统中的所有处理器,包括 CPU 和 GPU .为此,应用程序必须在多个处理器上并发执行函数. CUDA 应用程序通过在 streams ...
- 使用现代C++如何避免bugs(上)
使用现代C++如何避免bugs(上) How to avoid bugs using modern C++ C++的主要问题之一是拥有大量的构造,它们的行为是未定义的,或者程序员只是意想不到的.在各种 ...
- 【creo】CREO5.0+VS2019配置(还没写完)
欢迎大家一起学习使用c++对CREO5.0二次开发. 第1步,建立开发目录:在E盘(或者其他盘)新建creo_cpp文件夹,文件夹中新建ABC_TOOLS用来存放我们开发的工具,CODE文件夹存放开发 ...