玩转YAML配置文件占位符 ,同事纷纷直呼大佬

配置文件占位符

Spring Boot配置文件支持占位符,一些用法如下:

为server.port设置一个随机端口

server: port: ${random.int}

 其他随机占位符

// 随机数占位符${random.value} - 类似uuid的随机数,没有"-"连接${random.int} - 随机取整型范围内的一个值${random.long} - 随机取长整型范围内的一个值${random.long(100,200)} - 随机生成长整型100-200范围内的一个值${random.uuid} - 生成一个uuid,有短杠连接${random.int(10)} - 随机生成一个10以内的数${random.int(100,200)} - 随机生成一个100-200 范围以内的数

 动态生成配置项的值

server:  port: ${APP_PORT:8080}app:  name: My Application  timestamp: #{T(java.time.LocalDateTime).now()}spring:  profiles:    active: dev  application:    name: ${APP_NAME:app-name}  jackson:    serialization:      #格式化输出      indent_output: true

 

使用默认值:

有时某个配置项可能没有被配置,或者配置项的值为空。为了避免空指针异常,我们可以为占位符提供一个默认值。默认值可以在占位符后面使用冒号和默认值的形式进行指定

默认值

占位符获取之前配置的值,如果没有可以使用“冒号”指定默认值格式.

例如,server.port是属性层级及名称,如果该属性不存在,冒号后面填写默认值

${server.port:8080}

如果server.port值为不存在,就会取8080,如果存在,则取server.port的值。 

jackson完整配置

spring:  jackson:    #日期格式化    date-format: yyyy-MM-dd HH:mm:ss    serialization:      #格式化输出      indent_output: true      #忽略无法转换的对象      fail_on_empty_beans: false    #设置空如何序列化    defaultPropertyInclusion: NON_EMPTY    deserialization:      #允许对象忽略json中不存在的属性      fail_on_unknown_properties: false    parser:      #允许出现特殊字符和转义符      allow_unquoted_control_chars: true      #允许出现单引号      allow_single_quotes: true      #兼容反斜杠,允许接受引号引起来的所有字符      allow_backslash_escaping_any_character: true

 spring.jackson.serialization.indent-output=true配置项的作用

生成的 JSON 字符串会按照固定的格式进行缩进,使得 JSON 字符串更加易读

ObjectMapper mapper = new ObjectMapper(); 
mapper.enable(SerializationFeature.INDENT_OUTPUT);  
TestObject obj = new TestObject(); 
String json = mapper.writeValueAsString(obj);

生成的 JSON 字符串

{  "field1": "value1",  "field2": 123,  "field3": {    "subfield1": "subvalue1",    "subfield2": "subvalue2"  }}

当关闭 spring.jackson.serialization.indent-output 时,生成的 JSON 字符串会采用紧凑格式,所有的元素都放在一行上,不进行缩进。

如下所示:

 {"field1":"value1","field2":123,"field3":{"subfield1":"subvalue1","subfield2":"subvalue2"}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/85199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《计算机视觉中的多视图几何》笔记(9)

现在进入本书的part 2了,标题是Two-View Geometry。第9-14章都隶属于part 2,这一部分涵盖了两个透视图的几何形状知识,这些视图可以像在立体设备中同时获取,或者例如通过相对于场景移动的相机顺序获取。这两种情况在几何上是等价的…

【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码

冒泡排序原理 每次比较两个相邻的元素,将较大的元素交换至右端 冒泡排序执行过程输出效果 冒泡排序实现思路 每次冒泡排序操作都会将相邻的两个元素进行比较,看是否满足大小关系要求,如果不满足,就交换这两个相邻元素的次序&…

携手走过四年,极智嘉(Geek+)赋能上海西门子开关智慧物流升级

日前,上海西门子开关有限公司迎来了工厂30周年庆典暨客户开放日活动,全球仓储机器人引领者极智嘉(Geek)荣幸作为优秀供应商代表受邀参会,见证其突破革新、数智飞跃的三十载辉煌历程。 客户开放日活动中,上海西门子开关有限公司开…

聊聊API安全的重要性及治理思路

在应用程序开发过程中,API是一个会被经常提及的东西,它的全称是Application Programming Interface(应用程序接口),一般指的是Web API,即:采用HTTP通信协议的API或者是Web应用程序对外提供的API…

2101. 引爆最多的炸弹;752. 打开转盘锁;1234. 替换子串得到平衡字符串

2101. 引爆最多的炸弹 核心思想:枚举BFS。枚举每个炸弹最多引爆多少个炸弹,对每个炸弹进行dfs,一个炸弹能否引爆另一个炸弹是两个炸弹的圆心距离在第一个炸弹的半径之内。 752. 打开转盘锁 核心思想:典型BFS,就像水源扩散一样&a…

打造本地紧密链接的开源社区——KCC@长沙开源读书会openKylin爱好者沙龙圆满举办...

2023年9月9日,由开源社联合 openKylin 社区举办的 KCC长沙开源读书会&openKylin 爱好者沙龙,在长沙圆满举办。这是 KCC长沙首次正式进入公众视野,开展开源交流活动,也是 openKylin 社区长沙首场线下沙龙。长沙地区及其周边的众…

阿里云大数据实战记录10:Hive 兼容模式的坑

文章目录 1、前言2、什么是 Hive 兼容模式?3、为什么要开启 Hive 模式?4、有什么副作用?5、如何开启 Hive 兼容模式?6、该场景下,能不能不开启 Hive 兼容模式?7、为什么不是DATE_FORMAT(datetime, string)&…

Mybatis SQL构建器

上一篇我们介绍了在Mybatis映射器中使用SelectProvider、InsertProvider、UpdateProvider、DeleteProvider进行对数据的增删改查操作;本篇我们介绍如何使用SQL构建器在Provider中优雅的构建SQL语句。 如果您对在Mybatis映射器中使用SelectProvider、InsertProvider…

八大排序(四)--------直接插入排序

本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:八大排序汇总 🚚代码仓库:小小unicorn的代码仓库…

Swift SwiftUI 修改 List 背景颜色

Preview: Code: .listRowBackground(Color(.yellow)).scrollContentBackground(.hidden) .background(.linearGradient(colors: [.white, .accentColor], startPoint: .top, endPoint: .bottom))喜欢或对你有帮助,点个赞吧,自己先点个嘿嘿。 有错误或者…

Gateway学习和源码解析

文章目录 什么是网关?搭建实验项目demo-servicegateway-service尝试简单上手 路由(Route)断言(Predicate)和断言工厂(Predicate Factory)gateway自带的断言工厂After(请求必须在某个…

【PyTorch 攻略】(6-7/7)

一、说明 本篇介绍模型模型的参数,模型推理和使用,保存加载。 二、训练参数和模型 在本单元中,我们将了解如何加载模型及其持久参数状态和推理模型预测。为了加载模型,我们将定义模型类,其中包含用于训练模型的神经网…

LeetCode 刷题记录——从零开始记录自己一些不会的(二)

20. 替换后的最长重复字符 题意 给你一个字符串 s 和一个整数 k 。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行 k 次。 在执行上述操作后,返回包含相同字母的最长子字符串的长度。 思路 代码 class Solution…

DOMBOM

DOM Document Object Model:文档对象模型 DOM树 文档:一个页面就是一个文档; 节点:网页中的所有内容,在文档树中都是节点,使用node表示; DOM操作节点实现网页特效的步骤: 获取ht…

软件需求文档、设计文档、开发文档、运维文档大全

在软件开发过程中,文档扮演着至关重要的角色。它不仅记录了项目的需求、设计和开发过程,还为项目的维护和管理提供了便利。本文将详细介绍软件开发文档的重要性和作用,以及需求分析、软件设计、开发过程、运维管理和项目管理等方面的文档要求…

DA5 网站用户没有补全的信息

目录 1.题目描述 2.输入描述 3.输出描述 4.题目分析 5.通过代码 1.题目描述 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔): Nowcoder_ID:用户ID …

Vosviewer的安装与使用

Vosviewer的安装与使用 1 安装2 使用参考: 关于vosviewer我就不过多介绍了。 vosviewer与citespace有什么区别?在这里可以引用一下知乎的文章简要说明一下: 1.操作难易VOSviewer很简单,在官网下载的时候会附带一个英文手册,稍微…

Linux命令基础

一、linux目录结构。 Linux没有windows的盘的概念,是一个树形的结构。唯一的根目录为/,所有的文件都在他下面。 描述方式也与windows有所不同 二、命令基础格式。 command [-options] [parameter]([ ]表示可选的) command:必…

以太坊代币标准ERC20、ERC721

两个概念 ERC(Ethereum Request for Comment) 以太坊意见征集稿EIP(Ethereum Improvement Proposals)以太坊改进提案 ERC和EIP用于使得以太坊更加完善;在ERC中提出了很多标准,用的最多的标准就是它的Token标准; 有哪些标准详细见https://eips.ethereum…

【lesson7】yum的介绍及使用

文章目录 预备工作yum的基本过程yum的操作**yum源问题:****yum三板斧:**yum listyum searchyum list | grepyum installyum install -yyum removeyum remove -y 预备工作 首先有三个问题: 问题解答: 这里我们联想到了手机 问题…