[SpringBoot] 使用yaml文件实现多配置
SpringBoot 使用yaml文件实现多配置
SpringBoot利用yaml文件实现多配置有两种方式:
- 单个yml中编写多个配置(Multi-profile YAML Documents)
- 编写多个yml文件,分别代表不同的配置(multiple YAML documents)
下面详细介绍这两种方式的使用
一、单个yml中编写多个配置(Multi-profile YAML Documents)
在一个yml文件中,通过 --- 分隔多个不同配置,根据spring.profiles.active 的值来决定启用哪个配置,例如:
#公共配置
spring:
profiles:
active: pro #使用名为pro的配置,这里可以切换成dev
datasource:
url: jdbc:mysql://localhost:3306/test_db?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
password: 123456
username: root
---
#开发环境配置
spring:
profiles: dev #profiles属性代表配置的名称
server:
port: 8080
---
#生产环境配置
spring:
profiles: pro
server:
port: 80
二、编写多个yml文件,分别代表不同的配置(Multiple YAML Documents)
将配置编写在多个yml文件中,根据spring.profiles.active 的值来决定启用哪个配置。
配置文件规则如下:
- 文件命名需要符合application-{profile}.yml的格式,如:application-dev.yml
- 通用配置写到application.yml中,不同的环境配置写到不同的yml文件中
例如:
application.yml
#公共配置
spring:
profiles:
active: pro #使用名为pro的配置,这里可以切换成dev
datasource:
url: jdbc:mysql://localhost:3306/test_db?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
password: 123456
username: root
application-dev.yml
server:
port: 8080
application-pro.yml
server:
port: 80
总结
- 两种配置方式根据个人喜好使用,但如果配置很多,建议拆成多个yml文件,即方式二。便于维护
- 注意区分二者的不同,不能混用
彩蛋
工程打成jar包后,我们可以通过运行参数指定加载配置,而不用每次都修改配置打新包,例如:
java -jar xxx.jar --spring.profiles.active=pro
参考:
欢迎扫码关注我的个人公众号,获取最新文章↓
[SpringBoot] 使用yaml文件实现多配置的更多相关文章
- 编写资源yaml文件、压力机配置hosts
资源文件 Deployment/StatefulSet/DaemonSet.Service.Ingress等 参考:https://www.cnblogs.com/uncleyong/p/155710 ...
- 持续集成时 travis 和 codecov 等 yaml 文件的配置
最近在项目中在配置CodeCov 以及Travis 和 AppVeyor做持续集成时,遇到了一些问题,也解决了一些问题.顺便拿来分享一下. 首先时Travis,这个主要是来跑基于 Linux 环境下的 ...
- Eclipse 创建和读取yaml文件
工具和用法: 1. eclipse插件包:org.dadacoalition.yedit_1.0.20.201509041456-RELEASE.jar 用法:将此jar包复制到eclipse-jee ...
- java实现读取yaml文件,并获取值
首先在项目src目录下新建一个test.yaml的文件. 代码如下: spring: application: name: cruncher datasource: driverClassName: ...
- SpringBoot系列四:SpringBoot开发(改变环境属性、读取资源文件、Bean 配置、模版渲染、profile 配置)
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念 SpringBoot 开发深入 2.具体内容 在之前已经基本上了解了整个 SpringBoot 运行机制,但是也需要清 ...
- springboot的yaml基础语法与取值,配置类,配置文件加载优先级
1.基本语法k:(空格)v:表示一对键值对(一个空格必须有):以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的属性和值也是大小写敏感: server: port: 8081 pat ...
- springboot中对yaml文件的解析
一.YAML是“YAML不是一种标记语言”的外语缩写 (见前方参考资料原文内容):但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名.它是一种直观的能够被电脑识别的数据序列化 ...
- SpringBoot开发(改变环境属性、读取资源文件、Bean 配置、模版渲染、profile 配置)
1.概念 SpringBoot 开发深入 2.具体内容 在之前已经基本上了解了整个 SpringBoot 运行机制,但是也需要清楚的认识到以下的问题,在实际的项目开发之中,尤其是 Java 的 MVC ...
- SpringBoot自定义注解@YamlPropertySource加载yml或者yaml文件(扩展了@PropertySource)
1:概述 SpringBoot的@PropertySource注解只支持加载 properties结尾的文件.当使用@ConfigurationProperties 注解配合@EnableConfig ...
随机推荐
- 658.找到K个最接近的元素
2020-03-10 找到 K 个最接近的元素 给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之 差最小)的 k 个数.返回的结果必须要是按升序排好的.如果有两个数与 x 的 ...
- [转] 允许root通过ssh远程登录
点击阅读原文 在Ubuntu中允许root远程访问 如果使用如xshell等远程工具首次通过root连接Ubuntu会提示拒绝访问,并不是密码不正确,而是Ubuntu默认禁止以root远程连接. 我们 ...
- Magic Line【坐标点排序方法】
Magic Line 题目链接(传送门) 来源:牛客网 题目描述 There are always some problems that seem simple but is difficult to ...
- Anaconda 安装 以及conda使用
下载 https://www.anaconda.com/distribution/#macos 管理 conda 版本查看 conda --version conda 版本更新 conda updat ...
- Jupyter notebook中的Cell and Line Magics
参考资料: https://www.jianshu.com/p/81ada9234788 https://my.oschina.net/u/2306127/blog/832510 首先,Cell an ...
- 使用Python解密仿射密码
新学期有一门密码学课,课上老师布置了一道密码学题,题目如下: 解密由仿射密码加密的密文“DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS” 想解密这个密文,首先必须要知道仿 ...
- Java++:安全|API接口安全性设计
接口的安全性主要围绕 token.timestamp 和 sign 三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看: Token授权机制: 用户使用用户名密码登录后服务器给客户端返 ...
- .Net微服务实战之DevOps篇
技术只是基础 该系列的两篇文章<.Net微服务实战之技术选型篇>和<.Net微服务实战之技术架构分层篇>都是以技术角度出发描述微服务架构的实施. 如果技术选型篇叙述的是工具,那 ...
- 【django】CMS开发笔记一:虚拟环境配置
项目代码:https://github.com/pusidun/CMS-django 使用虚拟环境 虚拟环境是Python解释器的虚拟副本.在虚拟环境中安装私有包,不会影响全局的Python解释器.可 ...
- java小项目——抽奖系统
来了来了!这不又到考试周了吗!愁人,又得复习,复习,复习!这段时间每天都在复习线代和高数!(说是复习,说实话其实是在预习,啊哈哈哈哈哈),得有一段时间都没有学到新的知识了,代码感觉都生疏了,惆怅.博客 ...