springboot yml语法 ${} 用法
yml语法 ${} 用法
yml中自定义一个域名属性:mytest:domainName: https://blog.csdn.net/imHanweihu/article/details/96111227那么在此配置文件中,就可通过 ${} 来代替域名了url:helpCenter: ${xboot.domainName}/szoa/app/html/getHelpDetailById?helpId=
SpringBoot配置文件之Yml语法
一 使用 YAML 而不是 Properties
YAML是 JSON 的超集,因此,它是用于指定分层配置数据的便捷格式。只要 class 路径上有SnakeYAML library,SpringApplication
class 就会自动支持 YAML 作为 properties 的替代。
如果使用“Starters”,则
spring-boot-starter
会自动提供 SnakeYAML。
1.1、加载 YAML
Spring Framework 提供了两个方便的 classes,可用于加载 YAML 文档。 YamlPropertiesFactoryBean
将 YAML 加载为Properties
,YamlMapFactoryBean
将 YAML 加载为Map
。
对于 example,请考虑以下 YAML 文档:
environments:dev:url: http://dev.example.comname: Developer Setupprod:url: http://another.example.comname: My Cool App
前面的 example 将转换为以下 properties:
environments.dev.url=http://dev.example.com
environments.dev.name=Developer Setup
environments.prod.url=http://another.example.com
environments.prod.name=My Cool App
YAML lists 用dereferencers 表示为 property 键。例如,请考虑以下 YAML:
my:
servers:- dev.example.com- another.example.com
前面的 example 将转换为这些 properties:
my.servers[0]=dev.example.com
my.servers[1]=another.example.com
要使用 Spring Boot 的Binder
实用程序(这是@ConfigurationProperties
所做的)绑定到 properties,你需要在java.util.List
(或Set
)类型的目标 bean 中有一个 property,你需要提供一个 setter 或者用一个 setter 初始化它。可变值。对于 example,以下 example 绑定到前面显示的 properties:
@ConfigurationProperties(prefix="my")
public class Config {
private List<String> servers = new ArrayList<String>();
public List<String> getServers() {return this.servers;}
}
1.2、在 Spring 环境中将 YAML 公开为 Properties
YamlPropertySourceLoader
class 可用于在 Spring Environment
中将 YAML 公开为PropertySource
。这样做可以使用@Value
annotation 和占位符语法来访问 YAML properties。
1.3、YAML 文件
您可以使用spring.profiles
key 在单个文件中指定多个 profile-specific YAML 文档,以指示文档何时适用,如下面的示例所示:
server:address: 192.168.1.100
---
spring:profiles: development
server:address: 127.0.0.1
---
spring:profiles: production & eu-central
server:address: 192.168.1.120
在前面的 example 中,如果development
profile 是 active,则server.address
property 是127.0.0.1
。同样,如果production
和eu-central
profiles 是 active,则server.address
property 是192.168.1.120
。如果未启用development
,production
和eu-central
profiles,则 property 的 value 为192.168.1.100
。
因此,
spring.profiles
可以包含一个简单的 profile name(用于 exampleproduction
)或 profile 表达式。对于 exampleproduction & (eu-central | eu-west)
,profile 表达式允许表达更复杂的 profile 逻辑。检查参考指南以获取更多详细信息。
如果 application context 启动时 none 显式为 active,则会激活默认的 profiles。因此,在下面的 YAML 中,我们在“默认”profile 中为spring.security.user.password
设置了一个只有的值:
server:port: 8000
---
spring:profiles: defaultsecurity:user:password: weak
然而,在下面的示例中,始终设置密码,因为它没有附加到任何 profile,并且必须在必要时在所有其他 profiles 中显式重置:
server:port: 8000
spring:security:user:password: weak
使用spring.profiles
元素指定的 Spring profiles 可以选择使用!
字符否定。如果为单个文档指定了否定和 non-negated profiles,则至少一个 non-negated profile 必须 match,并且没有否定 profiles 可能 match。
1.4、YAML 缺点
无法使用@PropertySource
annotation 加载 YAML files。因此,如果您需要以这种方式加载值,则需要使用 properties 文件。
二 YAML语法:
2.1、基本语法
k:(空格)v:表示一对键值对(空格必须有);
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
server:port: 8081path: /hello
属性和值也是大小写敏感;
2.2、值的写法
字面量:普通的值(数字,字符串,布尔)
k: v:字面直接来写;
字符串默认不用加上单引号或者双引号;
"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
name: "zhangsan \n lisi":输出;zhangsan 换行 lisi
'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi
对象、Map(属性和值)(键值对):
k: v:在下一行来写对象的属性和值的关系;注意缩进
对象还是k: v的方式
friends:lastName: zhangsanage: 20
行内写法:
friends: {lastName: zhangsan,age: 18}
数组(List、Set):
用- 值表示数组中的一个元素
pets:- cat- dog- pig
行内写法
pets: [cat,dog,pig]
原文地址:https://www.cnblogs.com/dalianpai/p/11772301.html
springboot yml语法 ${} 用法相关推荐
- SpringBoot集成Mybatis用法笔记
今天给大家整理SpringBoot集成Mybatis用法笔记.希望对大家能有所帮助! 搭建一个SpringBoot基础项目. 具体可以参考SpringBoot:搭建第一个Web程序 引入相关依赖 &l ...
- Springboot笔记(3):Springboot yml/Web场景/雷神
目录 1.最佳实践-SpringBoot应用如何编写 2.最佳实践-Lombok简化开发 3.最佳实践-dev-tools 4.最佳实践-Spring Initailizr 5.配置文件-yaml的用 ...
- SpringBoot集成Redis用法笔记
今天给大家整理一下SpringBoot集成Redis用法笔记,希望对大家能有所帮助! 一.Redis优点介绍 1.速度快 不需要等待磁盘的IO,在内存之间进行的数据存储和查询,速度非常快.当然,缓存的 ...
- SpringBoot - yml与properties配置文件及bean赋值
SpringBoot - yml与properties配置文件及bean赋值 ① SpringBoot的配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的 : applicati ...
- springboot yml多环境开发
springboot yml格式多环境开发:
- springboot yml文件不是绿叶子问题
项目的yml文件一直不显示绿色小叶子,显示文本类型或者下图类型,项目启动运行不会影响,但是看着不爽,必需整它,终于,今天解决了. 先看一下我之前的yml格式 还有这样的,看起来不舒服. 解决方案 ct ...
- 【SpringBoot】SpringBoot @ConfigurationProperties 注解 用法与加载static静态属性
@ConfigurationProperties [SpringBoot]SpringBoot @ConfigurationProperties 注解 用法与加载static静态属性 @Configu ...
- yml配置oracle连接,springboot yml 文件配置oracle,提示账号密码错误
最近使用Spring boot,本来一直连接的是mysql数据库,一直没问题.昨天在更换了oracle数据库后,一直提示账号密码不正确,登录被拒绝.检查多次,检查账号密码一切正常,但就是连接不上ora ...
- SpringBoot yml修改tomcat端口
SpringBoot yml修改tomcat端口 学习目标 (1)可以修改tomcat的端口和访问项目中的静态资源 (2)如何修改tomcat端口 查询**Properties server.port ...
最新文章
- IBInspectable / IBDesignable
- 第一届全国大学生智能汽车竞赛获奖名单
- [转]阿拉伯数字转一二三和壹贰叁
- (62)时钟中断切换线程,时间片管理, KiDispatchInterrupt
- Python __all__
- 为减少用户电话排队,阿里研发了智能客服调度系统
- 微软BI 之SSRS 系列 - 使用 LookupSet 和 Adjacent Group 等高级技巧在报表中跨 Dataset 分组查询...
- G1垃圾收集器之RSet
- Layer 2 DAO 基础协议 Metis 上线 Alpha 测试网
- 如何自学并且系统学习计算机网络?(知乎问答)
- 关联分析(二)--FP-Growth算法
- TCP/IP协议与Http协议的区别
- js实现百度换肤功能
- Ubuntu版Julia安装与入门
- 计算机设备维修与及日常保养,电脑主机日常的维护保养计划
- 如何用WGDI进行共线性分析(中)
- python的hello world
- matlab外推预测函数,时间序列模型 (五): 趋势外推预测方法
- 后疫情时代品牌何去何从:营销机会就藏在百度的这些搜索大数据里
- 深信服2008校园招聘笔试题
热门文章
- ShowDoc在线文档工具的使用
- Servernbsp;Tomcatnbsp;v7.0amp;nbs…
- Linux——》系统日志
- 2021年中国饲料添加剂行业发展现状分析(附产值、市场供需现状、进出口贸易)[图]
- 5GNR漫谈9:PDSCH和PUSCH资源映射(频域type0/type1和时域typeA/typeB/typeC)
- Firefly ROC-RK3588S-PC板卡详细介绍
- 幂函数与指数函数的近似
- Nginx 502 Bad Gateway 的错误的解决方案
- SDNU-ACM第一次月赛地大武汉选拔赛
- 为什么说C++太复杂?复杂的必要性是为什么?