在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 ...
随机推荐
- Centos6.9以下查看端口占用情况和开启端口命令
Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令: lsof -i tcp:80 列出所有端口 netstat -ntlp 1.开启端口(以80端口为例) ...
- java并发编程工具类JUC第三篇:DelayQueue延时队列
DelayQueue 是BlockingQueue接口的实现类,它根据"延时时间"来确定队列内的元素的处理优先级(即根据队列元素的"延时时间"进行排序).另一层 ...
- 【六】K8s-Pod 水平自动扩缩实践(简称HPA)
一.概述 Pod 水平自动扩缩(Horizontal Pod Autoscaler)简称 HPA,HPA 可以根据 CPU 利用率进行自动伸缩 Pod 副本数量,除了 CPU 利用率,也可以基于其他应 ...
- C语言编译器开发之旅(一):词法分析扫描器
本节我们先从一个简易的可以识别四则运算和整数值的词法分析扫描器开始.它实现的功能也很简单,就是读取我们给定的文件,并识别出文件中的token将其输出. 这个简易的扫描器支持的词法元素只有五个: 四个基 ...
- 解决Error running 'Tomcat 9': Address localhost:8080 is already in use的问题
在我学习servlet的过程中遇到了tomacat端口8080被占用的情况,所以记录下来,毕竟以后还会碰见这种貌似情况 第一步,打开命令行界面,可快捷键window+R打开输入cmd进入 输入代码:n ...
- Vue全家桶之组件化开发
Vue全家桶之组件化开发 一.组件 组件 (Component) 是 Vue.js 最强大的功能之一 组件可以扩展 HTML 元素,封装可重用的代码 二. 组件注册 2.1 全局注册 Vue. ...
- guava cache 缓存
1.guava缓存 新建一个缓存对象cache,当取不到key对应的值时,生成一个,并插入到cache中 LoadingCache<String,String> cache = Cache ...
- springboot——简单通过Map将错误提示输出到页面显示
主要思路:在controller层我们将错误信息put进map中,然后通过视图解析器跳转到目标页面,在目标页面中在通过指定标签内的th:text将错误消息取出. 例: 1.编写controller代码 ...
- 前端 JS 之 AJAX 简介及使用
概述 AJAX 是一个缩写,它的全名是 Asynchronous JavaScript and XML,意思就是异步 JavaScript 和 XML,即用JavaScript执行异步网络请求. AJ ...
- CSS3-过渡、动画、2D与3D
过渡 过渡属性transition,可适用于大部分属性间变化的过渡,例如长度的.宽度和透明度等等. 语法: transition: property duration timing-function ...