配置文件中的$和@

news2024/10/5 13:15:43

配置文件中的$和@@

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

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

相关文章

19、WEB攻防——.NET项目DLL反编译未授权访问配置调试报错

文章目录 一、.NET项目——DLL文件反编译指向—代码特性二、.NET项目——Web.config错误调试—信息泄露三、.NET项目——身份验证未授权访问—安全漏洞 web搭配&#xff1a; windowsiisaspaccesswindowsiisaspxsqlserver 一、.NET项目——DLL文件反编译指向—代码特性 bin目…

基于物联网的智能仓管理系统方案

基于物联网的智能仓管理系统方案 一、项目背景 随着企业业务的快速发展&#xff0c;传统的人工仓库管理方式已经无法满足现代企业的需求。仓库运营效率低下、货物出入库错误、库存不准确等问题不断涌现。因此&#xff0c;我们提出一个基于物联网技术的智能仓管理系统方案&…

被围绕的区域[中等]

一、题目 给你一个m x n的矩阵board&#xff0c;由若干字符X和O&#xff0c;找到所有被X围绕的区域&#xff0c;并将这些区域里所有的O用X填充。 示例 1&#xff1a; 输入&#xff1a;board [["X","X","X","X"],["X",&qu…

输入一组数据,以-1结束输入[c]

我们新手写题时总能看到题目中类似这样的输入 没有给固定多少个数据&#xff0c;我们没有办法直接设置数组的元素个数&#xff0c;很纠结&#xff0c;下面我来提供一下本人的方法&#xff08;新手&#xff0c;看到有错误或者不好的地方欢迎大佬指出&#xff0c;纠正&#xff0…

NOIP2017提高组day2 - T2:宝藏

题目链接 [NOIP2017 提高组] 宝藏 题目描述 参与考古挖掘的小明得到了一份藏宝图&#xff0c;藏宝图上标出了 n n n 个深埋在地下的宝藏屋&#xff0c; 也给出了这 n n n 个宝藏屋之间可供开发的 m m m 条道路和它们的长度。 小明决心亲自前往挖掘所有宝藏屋中的宝藏。但…

Linux 安装图形界面 “startx”

———————————————— 报错&#xff0c;如下&#xff1a; bash :startx command not found ———————————————— 解决方法&#xff1a; 1.先安装 — X Windows System&#xff0c;输入以下命令&#xff1a; yum groupinstall “X Window System”…

IPQ6010 vs IPQ8072 What’s the difference?|802.11AX WiFi6 Solution DR6018 DR8072

IPQ6010 vs IPQ8072 What’s the difference?|802.11AX WiFi6 Solution DR6018 DR8072 IPQ6010 vs IPQ8072: In-Depth Comparison and Selection Guide The rapid evolution of networking technologies has driven continuous innovation in routers and network devices. Am…

鸿蒙(HarmonyOS)北向开发项目编译问题汇总

运行Hello World Hello World 工程可以运行在模拟器中&#xff0c;或者运行在真机设备中。本示例先以选择将 Hello World 工程运行在模拟器中进行说明&#xff0c;如果选择运行在真机设备中&#xff0c;需要先对工程进行签名&#xff0c;然后才能运行在真机设备中。 DevEco S…

Proxmox创建CentOS虚拟机

文章目录 下载ISO安装文件上传创建虚拟机启动虚拟机设置DNS CentOS配置国内安装源备份原有安装源下载更新国内源清理yum缓存制作新配置文件缓存 下载ISO安装文件 下载地址&#xff1a;https://www.xitongzhijia.net/ 也可去官网进行下载 上传 下面介绍直接通过页面上传&…

三、Java运算符

1.运算符和表达式 运算符&#xff1a; ​ 就是对常量或者变量进行操作的符号。 ​ 比如&#xff1a; - * / 表达式&#xff1a; ​ 用运算符把常量或者变量连接起来的&#xff0c;符合Java语法的式子就是表达式。 ​ 比如&#xff1a;a b 这个整体就是表达式。 ​ 而其…

11.仿简道云公式函数实战-逻辑函数-TRUE

1. TRUE函数 TRUE 函数可直接返回逻辑值 true。 2. 函数用法 TRUE() 3. 函数示例 TRUE 函数一般不会作为函数单独使用&#xff0c;可与其他函数一起使用&#xff0c;或作为判断逻辑的结果。如&#xff0c;判断字段值是否为空时&#xff0c;设置公式为IF(ISEMPTY(方案选择)…

2023-12-12 AIGC-AI工具的基本工作原理

摘要: 2023-12-12 AIGC-AI工具的基本工作原理 AI工具的基本工作原理 AI工具的基本工作原理涉及到一系列复杂的技术和算法。这些原理可以根据不同类型的AI工具进行概括&#xff0c;包括机器学习、自然语言处理、图像识别等。以下是一些关键的AI工具及其工作原理的概述&#xff…

基础算法(1):排序(1):选择排序

今天对算法产生了兴趣&#xff0c;开始学习基础算法&#xff0c;比如排序&#xff0c;模拟&#xff0c;贪心&#xff0c;递推等内容&#xff0c;算法是很重要的&#xff0c;它是解决某个问题的特定方法&#xff0c;程序数据结构算法&#xff0c;所以对算法的学习是至关重要的&a…

【知网稳定检索】第三届人文,智慧教育与服务管理国际学术会议(HWESM 2024)

第三届人文&#xff0c;智慧教育与服务管理国际学术会议&#xff08;HWESM 2024&#xff09; 2024 3rd International Conference on Humanities, Wisdom Education and Service Management 第三届人文&#xff0c;智慧教育与服务管理国际学术会议&#xff08;HWESM 2024&…

LangChain学习二:提示-实战(上半部分)

文章目录 上一节内容&#xff1a;LangChain学习一&#xff1a;模型-实战学习目标&#xff1a;提示词及提示词模板的运用学习内容一&#xff1a;什么是提示词&#xff1f;学习内容二&#xff1a;提示词模板2.1 入门2.2 模板格式2.3 验证模板2.4 序列化提示模板2.5 将少量示例传递…

Linux 高级管理,MySQL服务器的构建与维护

实验环境 某公司因业务范围日益扩大&#xff0c;最近订购了一套基于B/S架构的电子商务系统&#xff0c;在正式部署之前&#xff0c;要 求对现有的httpd服务器进行改造&#xff0c;首先需要增加MySQL数据库服务。 需求描述 1. 编译安装MySQL服务器&#xff0c;并添加为mysqld系…

Centos7防火墙及端口开启

1、防火墙 1.1、查看防火墙是否开启 systemctl status firewalld 1.2、开启防火墙 firewall-cmd --list-ports 1.3、重启防火墙 firewall-cmd --reload 2、端口 2.1、查看所有已开启的端口号 firewall-cmd --list-ports 2.2、手动开启端口 启动防火墙后&#xff0c;默认没有开…

Mybatis-Plus源码解析之MybatisPlusAutoConfiguration(二)

group : com.baomidou version:3.5.2.2-SNAPSHOT SpringBoot是自动装配。Spring则可以在配置类上Import(MybatisPlusAutoConfiguration.class) org.springframework.boot.autoconfigure.EnableAutoConfiguration\com.baomidou.mybatisplus.autoconfigure.MybatisPlusLanguageD…

如何想成为嵌入式工程师?(这些东西您必须知道)

嵌入式的发展怎么样&#xff1f; 嵌入式系统领域一直在迅速发展&#xff0c;伴随着物联网、智能设备、汽车电子、医疗设备等应用的不断增加&#xff0c;对嵌入式技术的需求也在不断扩大。因此&#xff0c;嵌入式领域仍然是一个充满机会的领域&#xff0c;为专业人士提供…

AC修炼计划(AtCoder Beginner Contest 332)

传送门&#xff1a;AtCoder Beginner Contest 332 - AtCoder a,b,c都还是很基础了。d题是一个bfs的纯暴力问题。 E - Lucky bag 看看范围&#xff0c;n15&#xff0c;第一个想法是dfs纯暴力&#xff0c;但所有的情况太大&#xff0c;各种决策层出不穷&#xff0c;会t。所以转…