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

news2024/10/5 16:30:42

配置文件占位符

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.coloradmin.cn/o/1032835.html

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

相关文章

【李沐深度学习笔记】矩阵计算(5)

课程地址和说明 线性代数实现p4 本系列文章是我学习李沐老师深度学习系列课程的学习笔记,可能会对李沐老师上课没讲到的进行补充。 本节是第五篇,由于CSDN限制,只能被迫拆分 矩阵计算 多元函数的等高线 此处参考视频:熟肉)多元…

c语言-实用调试技巧

什么是bug? 程序中出现的问题 调试是什么?有多重要? 测试的基本步骤:发现程序错误的存在 以隔离、消除等方式对错误进行定位,确定错误产生的原因,提出纠正错误的解决办法,对程序错误予以改正…

【Servlet】第一个 Servlet 项目

第一个 Servlet 项目 一. Servlet 是什么二. Servlet 主要做的工作三. 第一个 Servlet 程序1. 创建项目2. 引入依赖3. 创建目录4. 编写代码5. 打包程序6. 部署程序7. 验证程序 四. 更方便的部署方式1. 安装 Smart Tomcat 插件2. 配置 Smart Tomcat 插件 一. Servlet 是什么 Se…

2023华为杯数学建模研赛思路分享——最全版本E题技术文档深度解析已出

2023华为杯数学建模研赛E题最新完整版技术文档已出 更多内容加群了解咨询【云顶数模科研交流群】: 正在跳转​qm.qq.com/cgi-bin/qm/qr?_wv1027&kzZ9YYiFSIhMwasovgcr-Fq6wp_ZF2-To&authKeyIDnk4VjKwk4FWcwTKW1ye8qfCOZjKbx%2FeLQVSFeD%2BrrUNJnhWAYwC%2…

OceanBase再获OSCAR两项大奖,坚定开源开放

2023 年 9 月 21 日,由中国信息通信研究院(简称“中国信通院”)、中国通信标准化协会联合主办的“OSCAR 开源产业大会”在京召开。本次发布了 2023 年可信开源评估结果,OceanBase 通过 可信开源 社区评估,荣获 “OSCAR…

【打开新世界大门】看测试老鸟如何把API 测试玩弄在鼓掌之间

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试) 一、API 测试的基本步骤 我介绍过当今互联网产品的测试策略往往会采用菱形结构,即重量级 AP…

蜣螂优化(DBO)算法的5种最新变体(含MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…

spark Structured报错解决

报错,不想看原因的直接去解决方案试试 Exception in thread "main" java.lang.IllegalArgumentException: Pathname /C:/Users/Administrator/AppData/Local/Temp/1/temporary-611514af-8dc5-4b20-9237-e5f2d21fdf88/metadata from hdfs://master:8020/C…

C/C++连接数据库,包含完整代码。

C/C连接数据库 本篇文章意在简洁明了的在linux环境下使用C/C连接远程数据库,并对数据库进行增删查改等操作。我所使用的环境是centos7,不要环境除环境配置外,代码是大同小异的。完整代码在最底部!!! 1.前…

[极客大挑战 2019]RCE ME 取反绕过正则匹配 绕过disable_function设置

目录 取反 1.蚁剑插件绕过 2.baypass disable_function open_dir/disable_function putenv()/LD_PRELOAD 来绕过限制 利用条件 利用思路 有意思。。。。 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("Th…

redis的安装、基础命令及常用数据结构

文章目录 前言一、Redis安装1.Ubuntu下安装&#xff08;1&#xff09;切换到root用户下&#xff08;2&#xff09;使用apt安装redis5&#xff08;3&#xff09;为了使redis支持远程连接&#xff0c;修改以下地方&#xff08;4&#xff09;验证安装是否成功 2.Centos7下安装&…

【C++】STL简介 | string类的常用接口

目录 STL简介 学string类前的铺垫 概念 为什么要学string类 string类的底层&#xff08;了解&#xff09; 编码表的故事 string类的常用接口与应用 3个必掌握的构造 赋值 访问字符operator[] 初识迭代器&#xff08;iterator&#xff09; 反向迭代器 用范围for遍历…

uniapp获取一周日期和星期

UniApp可以使用JavaScript中的Date对象来获取当前日期和星期几。以下是一个示例代码&#xff0c;可以获取当前日期和星期几&#xff0c;并输出在一周内的每天早上和晚上&#xff1a; // 获取当前日期和星期 let date new Date(); let weekdays ["Sunday", "M…

剔除数据中的异常值(python实现)

目录 一、3σ原则 二、箱线图发现异常值 三、boxcox数据变换 一、3σ原则 该准则仅局限于对正态或近似正态分布的样本数据处理,此外,当测量次数少的情形用准则剔除粗大误差是不够可靠的。 异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称离群点,异常…

xpath定位不包含某种属性的元素

今天定位一个页面中的input文本框&#xff0c;发现竟然有两个几乎一模一样的html代码的input文本框。 唯一不同的是&#xff0c;一图中的input有一个comps"[object Object],[object Object]"的属性和属性值&#xff0c;二图则没有。我要定位的是二图中的input&#x…

AUTOSAR实战篇:手把手带你搞定Watchdog协议栈

AUTOSAR实战篇:手把手带你搞定Watchdog协议栈 前言 小T出品,必是精品! 手把手搞定Watchdog协议栈,你值得拥有! 正文 在进行Watchdog协议栈实战之前,建议先阅读小T之前有关Watchdog协议栈的两篇文章《Watchdog协议栈上》与《Watchdog协议栈下》先了解下在AUTOSAR框架下的W…

【Redis】第7讲 常用的操作命令

连接redis并测试 redis-cliping 设置并获取数据 set k1 chinaget k1 测试性能 rootsue-virtual-machine:~# redis-benchmark ctrlc 退出redis,执行命令5秒就ctrlc关闭&#xff0c;性能要看电脑的配置高低 默认16个数据库 vim /opt/redis-5.0.4/redis.conf 数据库键的数量 …

深入理解web安全攻防策略,看完这一篇就够了

前言 互联网时代&#xff0c;数据安全与个人隐私信息等受到极大的威胁和挑战&#xff0c;本文将以几种常见的攻击以及防御方法展开分析。 1. XSS (跨站脚本攻击) 定义&#xff1a;通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击…

王道考研数据结构代码总结(第八章)

目录 排序插入排序直接插入排序折半插入希尔排序链表的插入排序插入类排序总结 交换排序冒泡排序快速排序 选择排序简单选择排序堆排序堆的插入堆的删除 归并排序基数排序 本文包含王道考研讲课中所涉及的数据结构中的所有代码&#xff0c;当PPT代码和书上代码有所区别时以咸鱼…

“智慧”北京,人工智能引领“新风尚”

原创 | 文 BFT机器人 北京时间&#xff0c;9月15日&#xff0c;北京人工智能产业峰会暨中关村科学城科创大赛颁奖典礼在北京中关村举行&#xff0c;同时惠阳还举行了“中关村人工智能大模型产业集聚区”启动建设的揭牌仪式。 此次大会围绕北京AI产业的建设与发展&#xff0c;各…