19、springboot引用配置属性或引用生成文件的属性或引用随机值

news2024/11/15 23:59:53

引用配置属性或引用生成文件的属性或引用随机值

★ 使用占位符引用其他配置属性:

配置文件中可用${}占位符引用已有的属性,被引用的属性可以是:
- 已定义的属性。
- 来自其他配置源(比如命令行的选项参数、环境变量、系统属性等)。

好处:提高了配置文件的可维护性。

代码示例

步骤:
1、在application.yml配置文件中使用${}这种占位符来引用已有的属性。
2、已有的属性有appName,然后下一个appDescription就可以引用appName。目的就是提高配置的可维护性,比如appDescription中的占位符引用需要和appName保持一致时,就需要使用到占位符来引用,appName一修改,appDescription 中的占位符引用也跟着修改。不用说改两次。
3、可以看出在Program arguments中设置的命令行选项参数,在项目启动后,会把数据传递到application.yml的" ${port} " 这个占位符这里。
提示:我在application.yml 和 application.properties 两个配置文件都添加了端口号,发现是以yml 配置文件的为主。
4、然后创建一个类,用@Value注解获取配置文件中的属性值,然后写一个方法看是否能成功通过" ${} "这个占位符引用 拿到数据。
在这里插入图片描述

★ 引用构建文件中的属性

▲  Maven构建工具: 使用  @属性名@  引用pom.xml文件中的配置属性:

pom.xml文件是项目的生成文件。


▲ Gradle 构建工具

在build.gradle文件中增加如下配置:
// 配置Java插件的processResources Task
processResources {
expand(project.properties)
}
接下来即可在配置文件中通过“${属性名}”的形式引用build.gradle文件中的属性。
此时,原有的占位符格式需要进行转义:\${..}。

★ 使用随机值

有些时候(比如出于测试目的),项目需要某些值,但不想使用固定的值,而是直接使用某个随机值,
此时就可以借助于Spring Boot随机值配置的方式。

其格式类似于占位符: ${random.xxx}

random就是Spring容器中RandomValuePropertySource Bean,

因此random能使用哪些属性完全取决于RandomValuePropertySource 的API.

▲ random可生成随机的整数值,随机UUID

   【注意:】相当于是Spring Boot一个小bug,当你用int()或者long()来生成带范围的随机值时,
             用于分割范围的逗号的前后都不能有空格。

代码示例:引用pom.xml文件和引用随机值

在这里插入图片描述
在这里插入图片描述

总结:【配置文件中引用其他属性】:

 A。 用占位符引用已有的配置属性。  ${}

 B. 引用生成文件中的配置属性。

    Maven: @属性@
    Gradle:  ${}, 此时对占位符引用要进行转义。

 C. 引用随机值。 ${random.int|long|uuid}

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

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

相关文章

JGJ79-2012建筑地基处理技术规范

为了在地基处理的设计和施工中贯执行国家的技术经济政策,做到安全适用、技术先进、经济合理、确保质量、保护环境,制定本规范。 本规范适用于建筑工程地基处理的设计、施工和质量检验。 地基处理除应满足工程设计要求外,尚应做到因地制宜就…

【数模】奇异值分解SVD和图形处理

介绍奇异值分解在图形压缩中的运用,并将简单介绍下Matlab对于图形和视频的处理 一、奇异值分解介绍 1.1 基本概念 奇异值分解(Singular Value Decomposition,以下简称SVD)是线性代数中一种重要的矩阵分解: U和V都是正交矩阵∑是奇异值矩阵&…

操作系统_内存管理

这里写目录标题 虚拟内存是什么为什么要有虚拟内存虚拟内存的实现方式1.分页查找过程页表的底层实现 2.分段段表的底层实现 3.段页式 分段和分页有什么区别什么是交换空间物理地址、逻辑地址、有效地址、线性地址、虚拟地址页面替换算法什么是缓冲区溢出 有什么危害malloc 是如…

Arthas协助MQ消费性能优化

背景 项目中使用AWS的SQS消息队列进行异步处理,QA通过压测发现单机TPS在23左右,目标性能在500TPS,所以需要对消费逻辑进行优化,提升消费速度。 目标 消费TPS从23提升到500 优化流程 优化的思路是先分析定位性能瓶颈&#xff…

如何加载模型YOLOv8 ONNXRuntime

YOLOv8 是 YOLO(You Only Look Once)目标检测系统的最新版本(v8)。YOLO 是一种实时、一次性目标检测系统,旨在在网络的单次前向传递中执行目标检测,使其快速高效。YOLOv8是之前YOLO模型的改进版本,具有更高的精度和更快的推理速度。 ONNX(开放神经网络交换)是一种表示…

算法练习--leetcode 数组

文章目录 爬楼梯问题裴波那契数列两数之和 [数组]合并两个有序数组移动零找到所有数组中消失的数字三数之和 爬楼梯问题 输入n阶楼梯,每次爬1或者2个台阶,有多少种方法可以爬到楼顶? 示例1:输入2, 输出2 一次爬2阶&a…

正点原子HAL库入门1~GPIO

探索者F407ZGT6(V3) 理论基础 IO端口基本结构 F4/F7/H7系列的IO端口 F1在输出模式,禁止使用内部上下拉 F4/F7/H7在输出模式,可以使用内部上下拉不同系列IO翻转速度不同 F1系列的IO端口 施密特触发器:将非标准方波,整形为方波 当…

WebRTC 之音视频同步

在网络视频会议中, 我们常会遇到音视频不同步的问题, 我们有一个专有名词 lip-sync 唇同步来描述这类问题,当我们看到人的嘴唇动作与听到的声音对不上的时候,不同步的问题就出现了 而在线会议中, 听见清晰的声音是优先…

pygame贪吃蛇游戏

pygame贪吃蛇游戏 贪吃蛇游戏通过enter键启动,贪吃蛇通过WSAD进行上下左右移动,每次在游戏区域中随机生成一个食物,每次吃完食物后,蛇变长并且获得积分;按空格键暂停。 贪吃蛇 import random, sys, time, pygame from …

SQL 表别名 和 列别名

列表名 列表名之后 order by 可以用别名 也可以用原名, where 中不能用别名的 SQL语句执行顺序: from–>where–>group by -->having — >select --> order 第一步:from语句,选择要操作的表。 第二步&#xff1…

SolidWorks 3D Interconnect介绍

目前市面上有的三维设计软件有很多,如UG、Pro/E、CATIA等,而且每个三维设计软件都会生成自己文件格式。由于产品设计的原因,我们避免不了的会需要去使用不同三维设计软件的文件,这对于工程师来说其实是一件比较麻烦的事。 为什么…

性能测试JMeter学习笔记(脚本增强和命令行操作)

HTTP的Cookie管理器 在根节点下,添加“HTTP Cookie管理器”(注意是根节点) Cookie管理器作用:只要响应里有Cookie,就自动存进Cookie管理器,而后在后续的请求中,自动携带cookie JMeter脚本增强…

奥威BI系统:零编程建模、开发报表,提升决策速度

奥威BI是一款非常实用的、易用、高效的商业智能工具,可以帮助企业快速获取数据、分析数据、展示数据。值得特别注意的一点是奥威BI系统支持零编程建模、开发报表,是一款人人都能用的大数据分析系统,有助于全面提升企业的数据分析挖掘效率&…

教资学习笔记总结

科目一 科目二 第一章 教育基础知识和基本原理 第一节 教育的认识 1.教育的概念 教育的词源:教育一词最早出现于《孟子尽心上》:“得天下英才而教育之”许慎在《说文解字》中最早解释教育:“教,上所施,下所效也”…

DNS部署与安全详解(上)

文章目录 一、DNS二、域名组成1. 域名组成概述2. 域名组成 三、监听端口四、DNS解析种类1. 按照查询方式分类:2. 按照查询内容分类: 五、DNS服务器搭建过程1. 先确保服务器的IP地址是固定的2. 安装DNS软件 一、DNS DNS全称Domain Name Service&#xff0…

组合总和——力扣39

文章目录 题目描述回溯题目描述 回溯 class Solution {public:vector<vector<

Qt--动态链接库的创建和使用

写在前面 在Qt的实际开发中&#xff0c;免不了使用和创建动态链接库&#xff0c;因此熟悉Qt中动态链接库的创建和使用对后续的库开发或使用是非常用必要的。 在之前的文章https://blog.csdn.net/SNAKEpc12138/article/details/126189926?spm1001.2014.3001.5501中已经对导入…

Swish - Mac 触控板手势窗口管理工具[macOS]

Swish for Mac是一款Mac触控板增强工具&#xff0c;借助直观的两指轻扫&#xff0c;捏合&#xff0c;轻击和按住手势&#xff0c;就可以从触控板上控制窗口和应用程序。 Swish for Mac又不仅仅只是一个窗口管理器&#xff0c;Swish具有28个易于使用的标题栏&#xff0c;停靠栏…

基于ffmpeg与SDL的视频播放库

由于工作需要&#xff0c;自己封装的基于ffmpeg的视频编解码库&#xff0c;显示采用了SDL库。可以播放本地文件或网络流&#xff0c;支持多端口播放&#xff0c;支持文字叠加&#xff0c;截图、视频录制等等。 头文件代码&#xff1a; #pragma once #ifdef __DLLEXPORT #defin…

Visual Studio在Debug模式下,MFC工程中包含Eigen库时的定义冲突的问题

Visual Studio在Debug模式下&#xff0c;MFC工程中包含Eigen库时的定义冲突的问题 报错信息 Eigen\src\Core\PlainObjectBase.h(143,5): error C2061: 语法错误: 标识符“THIS_FILE” Eigen\src\Core\PlainObjectBase.h(143,1): error C2333: “Eigen::PlainObjectBase::opera…