配置文件中的$和@

配置文件中的$和@@

0、前言

借鉴文章:

https://blog.csdn.net/Saintmm/article/details/124603343
https://blog.csdn.net/ster_ben/article/details/119295815

在yml配置文件中,可以使用${}和@{}来引用其他配置项的值作为配置项的值。

spring:application:name: @artifactId@
spring:cloud:nacos:discovery:server-addr: ${NACOS_HOST:register}:${NACOS_PORT:8848}

1、$符号

${NACOS_HOST:register}作为例子举例说明$

${NACOS_HOST:register} 中的 NACOS_HOST 是一个占位符,它可以从不同的来源获取值,如果NACOS_HOST获取不到任何值,就取后面的register作为值。以下是NACOS_HOST可能的来源:

①环境变量:NACOS_HOST 可以是一个在操作系统环境中定义的环境变量。在运行应用程序之前,可以通过设置环境变量来为其提供值。

在这里插入图片描述

设置环境变量,如果值有多个,以;分隔

②命令行参数:你可以在启动应用程序时,通过命令行参数传递 NACOS_HOST 的值。例如,在命令行中指定 --NACOS_HOST=127.0.0.0.1

在这里插入图片描述

设置运行参数,以--k=v的方式设置一个参数,每个参数需要以空格隔开

class或者jar文件之后的字符串(--k=v)会传到 main 函数的 String[] 类型的 args 参数,多个参数用空格隔开

③配置文件:NACOS_HOST 的值也可以从其他的配置文件(如 properties 文件)中读取。在读取 YAML 配置文件之前,可以先加载这些配置文件,然后将属性值传递给应用程序。

以上是常见的获取 NACOS_HOST 值的方式,具体取决于你的应用程序的部署环境和需求。请根据实际

情况选择合适的方法来设置或提供 NACOS_HOST 的值

假设你有一个名为 custom-config.yml 的配置文件,在该文件中定义了 NACOS_HOST 的值,你可以在当前配置文件中通过以下方式指定从该文件中获取值:

classpath:custom-config.yml 表示 custom-config.yml 文件位于类路径下,如果文件位于其他位置,可以根据实际路径进行调整

spring:config:import: classpath:custom-config.yml

custom-config.yml中的值:

NACOS_HOST: 127.0.0.1

这样,在加载配置文件时,会自动读取 custom-config.yml 文件,并将其中的属性值合并到当前的配置中。这样,${NACOS_HOST:pigx-register} 将会使用 custom-config.yml 中定义的 NACOS_HOST 值,如果不存在,则使用默认值 pigx-register

同样也可以来自当前配置文件中的其他配置项,如下的spring.cloud.nacos.config.server-addr 通过$引用的值就是来自spring.cloud.nacos.discovery.server-addr`

spring:cloud:nacos:username: @nacos.username@password: @nacos.password@discovery:server-addr: ${NACOS_HOST:hs-register}:${NACOS_PORT:8848}config:server-addr: ${spring.cloud.nacos.discovery.server-addr}

2、@@符号

一帮使用*@@* 获取Maven的工程属性

spring:application:name: @artifactId@

其取值来自pom.xml中的artifactId

……
<artifactId>pigx-upms-biz</artifactId>
……

3、补充

① IDEA中Run/Debug Configurations中的三个主要内容进行总结

在这里插入图片描述

  • VM options

设置JVM参数 或 系统属性,需要以 -D 或 -X 或 -XX 开头,每个参数使用空格隔开

  • Program arguments

设置运行参数,以--k=v的方式设置一个参数,每个参数需要以空格隔开

  • Environment variable

设置环境变量,多个以;分隔

②运行java时的可选配置信息(options)

运行Java程序的时候,一般有两种方式:

  • 运行某个Class类(class表示的是包含main函数的class名称(含包名))
java [options] class [arguments]
  • 运行某个jar包(jar和xxx.jar配对使用,-jar指示用jar方式启动,而xxx.jar表示的时jar文件的名称)
java [options] -jar xxx.jar [arguments]

其中[options]表示Java运行环境的可选配置信息,其会影响到java运行环境,是性能调优的关键所在,并且可以传多个选择项。

[arguments]表示的是程序自身的参数,会被传到main函数的参数数组里面,为程序自己所使用。

Java启动命令可选项(options)大致可分为标准和非标准两种,非标准的可选项不保证在所有平台上都实现,并且在未来的某个版本中可能会被修改且不告知,相对而言比较不稳定(Unstable)。
从具体使用上而言可以分为三种,分别为:标准可选项(Standard options)、非标准可选项(Nonstandard Options) 和 不稳定(Unstable)的选项。

1)Standard Options
标准可选项常用的为-Dkey=value,通过其可以设定系统属性值,比如编码-Dfile.encoding=UTF-8。可以通过System.getProperty(“keyname”)来获取系统属性的值。

详细可以参考博文:Java程序启动时-D指定参数详解

2)Nonstandard Options
非标准可选项都以 -X 开始,常见于JVM调优配置,比如:

  • -Xms

    设置Java堆的初始化大小。例如 -Xms1024m,Java堆的初始化大小就设置为1G。

  • -Xmx

    设置Java堆的最大值。例如 -Xmx3072m,Java堆的最大值就设置为3G。

  • -Xss

    设置Java线程栈的值。例如 -Xss128m,Java线程栈的值就设置为128兆。

3)Unstable Options
不稳定的选项也是非标准的,其相当于非标准可选项的一个子集,都以-XX开头;同样常见于JVM调优配置,比如:

  • -XX:+UseG1GC
    使用G1垃圾回收器。
  • -XX:+PrintGCDetails
    GC日志中输入垃圾回收的详细信息。
  • -XX:OnOutOfMemoryError
    OOM时输出dump文件。
  • ……

③主机名解析

电脑上的hosts文件是一个文本文件,用于在计算机上将主机名解析为 IP 地址

它通常位于操作系统的系统目录下,比如在 Windows 上的路径是 C:\Windows\System32\drivers\etc\hosts,在 macOS 和 Linux 上的路径是 /etc/hosts

hosts文件中包含了一系列的条目,每个条目由 IP 地址和对应的主机名组成,中间使用空格或制表符分隔。当计算机尝试访问某个主机名时,首先会查找hosts文件,如果在该文件中找到对应的条目,则会将主机名解析为相应的 IP 地址。

这可以用于在本地进行主机名解析,以避免依赖 DNS 服务器。你可以向hosts文件添加自定义的条目,将特定的主机名映射到指定的 IP 地址。这在开发、测试和调试环境中非常有用,例如可以将某个域名指向本地的开发服务器。

对于下面这个,如果NACOS_HOST不存在,我们会选择register默认值

server-addr: ${NACOS_HOST:register}:${NACOS_PORT:8848}

我们可以设置register的ip地址,这样当应用程序读取YAML配置文件时,如果配置文件中的属性值是一个主机名,应用程序会根据自身的解析规则来解析这个主机名。

推荐一个快速host配置软件:SwitchHosts

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

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

相关文章

复旦微用AXIDMA接收原始图像

参考SD卡移植博客&#xff0c;&#xff0c;移植SD卡相应代码 AXIDMA部分Demo下的bsp包整个pl搬到相应位置&#xff0c;添加相应文件 #include <stdio.h> #include <stdlib.h> #include "platform.h" #include "fmsh_common.h" #include "…

CentOS 7 部署frp穿透内网

本文将介绍如何在CentOS 7.9上部署frp&#xff0c;并通过示例展示如何配置和测试内网穿透。 文章目录 &#xff08;1&#xff09;引言&#xff08;2&#xff09;准备工作&#xff08;4&#xff09;frps服务器端配置&#xff08;5&#xff09;frpc客户端配置&#xff08;6&#…

【Linux】进程和环境变量

我们启动一个软件&#xff0c;本质就是启动一个进程 在Linux下&#xff0c;运行一条命令&#xff0c;运行的时候&#xff0c;其实就是在系统层面创建了一个进程 而Linux系统管理大量进程则是先描述&#xff0c;再组织 进程 对应的代码和数据 进程等对应的PCB结构体 PCB包含了…

深度优先搜索LeetCode979. 在二叉树中分配硬币

给你一个有 n 个结点的二叉树的根结点 root &#xff0c;其中树中每个结点 node 都对应有 node.val 枚硬币。整棵树上一共有 n 枚硬币。 在一次移动中&#xff0c;我们可以选择两个相邻的结点&#xff0c;然后将一枚硬币从其中一个结点移动到另一个结点。移动可以是从父结点到…

postman接口测试系列: 时间戳和加密

在使用postman进行接口测试的时候&#xff0c;对于有些接口字段需要时间戳加密&#xff0c;这个时候我们就遇到2个问题&#xff0c;其一是接口中的时间戳如何得到&#xff1f;其二就是对于现在常用的md5加密操作如何在postman中使用代码实现呢&#xff1f; 下面我们以一个具体的…

【ZeroMQ(ZMQ)】高速并发通信框架学习笔记(C风格、C++风格都有哦)

目录 官方文档&#xff1a; ZeroMQ An open-source universal messaging library 前言 ☘️ ZeroMQ——基于消息队列模式的Socket库 框架提供的套接字可以满足在多种协议之间传输原子信息&#xff0c;如线程间、进程间、TCP、广播等。 ZMQ将消息通信分成 4 种模型&#xff0c…

JavaEE之多线程编程:2.创建线程及Thread类常见方法(超全!!!)

一、创建线程 Java中创建线程的写法有很多种&#xff01;&#xff01;&#xff01;这里介绍其中5种。 方法1&#xff1a;继承Thread类&#xff0c;重写run 创建一个类&#xff0c;让这个类继承自Thread父类&#xff0c;再重写我们的run方法就可以了。 使用Thread类&#xff…

MYsql第三次作业

目录 问题&#xff1a; 解答 1.查询student表的所有记录 2.查询student表的第2条到4条记录 3.从student表查询所有学生的学号&#xff08;id&#xff09;、姓名&#xff08;name&#xff09;和院系&#xff08;department&#xff09;的信息 4.从student表中查询计算机系和…

智能优化算法应用:基于鸽群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鸽群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鸽群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鸽群算法4.实验参数设定5.算法结果6.参考文献7.MA…

EdgeYOLO: anchor-free,边缘部署友好

简体中文 1 Intro 2 Updates 3 Coming Soon 4 Models 5 Quick Start \quad 5.1 setup

物奇平台MIC配置与音频通路关系

物奇平台MIC配置与音频通路关系 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)&#xff1f;可加我微信hezkz17, 本群提供音频技术答疑服务&#xff0c;群赠送语音信号处理降噪算法&#xff0c;蓝牙耳机音频&#xff0c;DSP音频项目核心开发资料, 1 255代表无效&am…

uni-app 一些实用的页面模板

时间倒计时 <!-- 时间倒计时 --> <template><view class"container"><view class"flex-row time-box"><view class"time-item">{{ laveTimeList[0] }}</view><text>天</text><view class&qu…

Java笔记草稿——已完成

导航&#xff1a; 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 推荐学习视频&#xff1a; 黑马程序员全套Java教程_哔哩哔哩 尚硅谷Java入门视频教程_哔哩哔哩 目录 零…

[BUUCTF 2018]Online Tool1

提示 利用nmap上传文件 首先进行代码分析&#xff1a; 首先是进行判断http信息头里是否在HTTP_X_FORWARDED_FOR并且是否有参数 $_SERVER[“HTTP_X_FORWARDED_FOR”] 的值才是客户端真正的IP&#xff08;如果是多层代理&#xff0c;该值可能是由客户端真正IP和多个代理服务…

二十五、图形视图框架

二十五、图形视图框架 我们将要用到三个类&#xff0c;QGraphicsView&#xff08;视图类&#xff09;、QGraphicsScene&#xff08;场景类&#xff09;、QGraphicsItem&#xff08;图元类&#xff09;。 QGraphicsView&#xff08;视图类&#xff09; 继承QWidget类&#xf…

玩转Docker(一):容器生态系统

文章目录 一、核心技术二、平台技术三、支持技术 本文结构如下&#xff1a; 一、核心技术 容器核心技术是指能够让Container在host上运行起来的那些技术。 &#xff08;1&#xff09;容器规范 容器不光是Docker&#xff0c;还有其他容器&#xff0c;比如CoreOS的rkt。为了保证…

网络推理之深度学习推理框架

如何选择深度学习推理框架&#xff1f; PyTorch vs LibTorch&#xff1a;网络推理速度谁更快&#xff1f; 高质量C进阶[2]&#xff1a;如何让线性代数加速1000倍&#xff1f; TensorRT: ONNX:

微服务--07--Sentienl中使用的限流算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Sentienl中使用的限流算法1、计数器固定窗口算法2、计数器滑动窗口算法----&#xff08;默认&#xff09;3、漏桶算法----&#xff08;排队等待&#xff09;4、令牌…

node.js 启一个前端代理服务,代码直接改一改拿来用

文章目录 前言一、分析技术二、操作步骤2.1、下载依赖2.2、创建一个 serve.js 文件2.3、js 文件中写入以下代码 三、运行&#xff1a; node serve四、结果展示五、总结六、感谢 前言 有时候我们需要做一些基础的页面时&#xff0c;在研发过程中需要代理调用接口避免浏览器跨域…

AI全栈大模型工程师(二十六)如何选择 GPU 和云服务厂商

&#x1f4a1; 这节课会带给你 如何选择 GPU 和云服务厂商&#xff0c;追求最高性价比 如何部署自己 fine-tune 的模型&#xff0c;向业务提供高可用推理服务 如何控制内容安全&#xff0c;做好算法备案&#xff0c;确保合规 开始上课&#xff01; 硬件选型 当我们为模型训练及…