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 加载为PropertiesYamlMapFactoryBean将 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。如果未启用developmentproductioneu-central profiles,则 property 的 value 为192.168.1.100

因此,spring.profiles可以包含一个简单的 profile name(用于 example production)或 profile 表达式。对于 example production & (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语法 ${} 用法相关推荐

  1. SpringBoot集成Mybatis用法笔记

    今天给大家整理SpringBoot集成Mybatis用法笔记.希望对大家能有所帮助! 搭建一个SpringBoot基础项目. 具体可以参考SpringBoot:搭建第一个Web程序 引入相关依赖 &l ...

  2. Springboot笔记(3):Springboot yml/Web场景/雷神

    目录 1.最佳实践-SpringBoot应用如何编写 2.最佳实践-Lombok简化开发 3.最佳实践-dev-tools 4.最佳实践-Spring Initailizr 5.配置文件-yaml的用 ...

  3. SpringBoot集成Redis用法笔记

    今天给大家整理一下SpringBoot集成Redis用法笔记,希望对大家能有所帮助! 一.Redis优点介绍 1.速度快 不需要等待磁盘的IO,在内存之间进行的数据存储和查询,速度非常快.当然,缓存的 ...

  4. SpringBoot - yml与properties配置文件及bean赋值

    SpringBoot - yml与properties配置文件及bean赋值 ① SpringBoot的配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的 : applicati ...

  5. springboot yml多环境开发

    springboot yml格式多环境开发:

  6. springboot yml文件不是绿叶子问题

    项目的yml文件一直不显示绿色小叶子,显示文本类型或者下图类型,项目启动运行不会影响,但是看着不爽,必需整它,终于,今天解决了. 先看一下我之前的yml格式 还有这样的,看起来不舒服. 解决方案 ct ...

  7. 【SpringBoot】SpringBoot @ConfigurationProperties 注解 用法与加载static静态属性

    @ConfigurationProperties [SpringBoot]SpringBoot @ConfigurationProperties 注解 用法与加载static静态属性 @Configu ...

  8. yml配置oracle连接,springboot yml 文件配置oracle,提示账号密码错误

    最近使用Spring boot,本来一直连接的是mysql数据库,一直没问题.昨天在更换了oracle数据库后,一直提示账号密码不正确,登录被拒绝.检查多次,检查账号密码一切正常,但就是连接不上ora ...

  9. SpringBoot yml修改tomcat端口

    SpringBoot yml修改tomcat端口 学习目标 (1)可以修改tomcat的端口和访问项目中的静态资源 (2)如何修改tomcat端口 查询**Properties server.port ...

最新文章

  1. IBInspectable / IBDesignable
  2. 第一届全国大学生智能汽车竞赛获奖名单
  3. [转]阿拉伯数字转一二三和壹贰叁
  4. (62)时钟中断切换线程,时间片管理, KiDispatchInterrupt
  5. Python __all__
  6. 为减少用户电话排队,阿里研发了智能客服调度系统
  7. 微软BI 之SSRS 系列 - 使用 LookupSet 和 Adjacent Group 等高级技巧在报表中跨 Dataset 分组查询...
  8. G1垃圾收集器之RSet
  9. Layer 2 DAO 基础协议 Metis 上线 Alpha 测试网
  10. 如何自学并且系统学习计算机网络?(知乎问答)
  11. 关联分析(二)--FP-Growth算法
  12. TCP/IP协议与Http协议的区别
  13. js实现百度换肤功能
  14. Ubuntu版Julia安装与入门
  15. 计算机设备维修与及日常保养,电脑主机日常的维护保养计划
  16. 如何用WGDI进行共线性分析(中)
  17. python的hello world
  18. matlab外推预测函数,时间序列模型 (五): 趋势外推预测方法
  19. 后疫情时代品牌何去何从:营销机会就藏在百度的这些搜索大数据里
  20. 深信服2008校园招聘笔试题

热门文章

  1. ShowDoc在线文档工具的使用
  2. Servernbsp;Tomcatnbsp;v7.0amp;nbs…
  3. Linux——》系统日志
  4. 2021年中国饲料添加剂行业发展现状分析(附产值、市场供需现状、进出口贸易)[图]
  5. 5GNR漫谈9:PDSCH和PUSCH资源映射(频域type0/type1和时域typeA/typeB/typeC)
  6. Firefly ROC-RK3588S-PC板卡详细介绍
  7. 幂函数与指数函数的近似
  8. Nginx 502 Bad Gateway 的错误的解决方案
  9. SDNU-ACM第一次月赛地大武汉选拔赛
  10. 为什么说C++太复杂?复杂的必要性是为什么?