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

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

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

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

代码示例

步骤:
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.hqwc.cn/news/53838.html

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

相关文章

devops-发布vue前端项目

回到目录 将使用jenkinsk8s发布前端项目 1 环境准备 node环境 在部署jenkins的服务器上搭建node环境 node版本 # 1.拉取 https://nodejs.org/download/release/v20.4.0/node-v20.4.0-linux-x64.tar.gz# 2.解压到/usr/local目录下 sudo tar xf v20.4.0.tar.gz -C /usr/loc…

No111.精选前端面试题,享受每天的挑战和学习

文章目录 map和foreach的区别在组件中如何获取vuex的action对象中的属性怎么去获取封装在vuex的某个接口数据有没有抓包过?你如何跟踪某一个特定的请求?比如一个特定的URL,你如何把有关这部分的url数据提取出来?1. 使用网络抓包工…

C++ - 模板分离编译

模板分离编译 我们先来看一个问题&#xff0c;我们用 stack 容器的声明定义分离的例子来引出这个问题&#xff1a; // stack.h // stack.h #pragma once #include<deque>namespace My_stack {template<class T, class Container std::deque<T>>class stack…

2023年08月IDE流行度最新排名

点击查看最新IDE流行度最新排名&#xff08;每月更新&#xff09; 2023年08月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多&#xff0c;这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…

【容器】docker基础使用

文章目录 一、docker常见命令二、注意事项Reference 一、docker常见命令 docker是一个容器化平台。 Docker介绍&#xff1a;&#xff08;官网&#xff1a;https://www.docker.com/get-started&#xff09; Docker 是一个开源的应用容器引擎&#xff0c;你可以把它当作一个轻量…

Java判断文件的系统格式编码格式

使用Java判断一个文件的系统格式&#xff08;亲测可用&#xff09;&#xff0c;比如我们常见的Windows格式的文件&#xff0c;Unixg格式的文件&#xff0c;Mac格式的文件&#xff1b;常常有这样的场景&#xff1a;我们在Windows系统编写的脚步上传到Linux系统执行&#xff0c;执…

caj文件怎么转换成pdf?了解一下这种方法

caj文件怎么转换成pdf&#xff1f;如果你曾经遇到过需要将CAJ文件转换成PDF格式的情况&#xff0c;那么你一定知道这是一件麻烦的事情。幸运的是&#xff0c;现在有许多软件和工具可以帮助你完成这项任务。下面就给大家介绍一款使用工具。 【迅捷PDF转换器】是一款功能强大的工…

外包业务成功的秘诀:自我修养的艺术

了解外包业务 外包&#xff0c;亦称外包服务&#xff0c;是一种经济活动形式。它是指企业将非核心业务交由专门的外部供应商完成&#xff0c;从而集中精力发展自身的核心业务。 外包的利弊 外包业务的利处在于&#xff0c;企业可以更好地专注于核心业务&#xff0c;缩减内部成…

【C#学习笔记】数组和索引器

文章目录 数组单维数组多维数组交错数组 索引器类上的索引器方法1方法2 接口中的索引器 数组 数组具有以下属性&#xff1a; 数组可以是一维、多维或交错的。创建数组实例时&#xff0c;将建立纬度数量和每个纬度的长度。 这些值在实例的生存期内无法更改。数值数组元素的默认…

中介者模式(Mediator)

中介者模式是一种行为设计模式&#xff0c;可以减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互&#xff0c;迫使它们通过一个封装了对象间交互行为的中介者对象来进行合作&#xff0c;从而使对象间耦合松散&#xff0c;并可独立地改变它们之间的交互。中介者…

【项目 线程4】3.12生产者消费者模型 3.13条件变量 3.14信号量 C++实现生产者消费者模型

3.12生产者消费者模型 生产者消费者模型中的对象&#xff1a; 1、生产者 2、消费者 3、容器 若容器已满&#xff0c;生产者阻塞在这&#xff0c;通知消费者去消费&#xff1b;若容器已空&#xff0c;则消费者阻塞&#xff0c;通知生产者去生产。生产者可以有多个&#xff0c;消…

深入学习 Redis - 谈谈你对 Redis 的 RDB、AOF、混合持久化的了解吧?

目录 一、Redis 是怎么存储数据的&#xff1f; 二、Redis 具体是按照什么样的策略来实现持久化的&#xff1f; 2.1、RDB&#xff08;Redis Database&#xff09; 2.1.1、触发机制 2.1.2、bgsave 命令处理流程 2.1.3、RDB 文件的处理 2.1.4、演示效果 1&#xff09;手动执…