springboot配置文件属性变量引用方式${}和@@用法及区别说明

Spring Boot 的配置文件可以通过 ${} 或 @@ 语法引用属性变量。这两种语法虽然看起来非常相似,但实际上有一些区别。

使用 ${} 引用属性变量

语法说明

${} 语法用于引用配置文件中的属性变量。在配置文件中可以定义一个属性,然后在其他地方通过 ${} 语法来引用该属性。语法格式如下:

${属性键名:默认值}

其中,属性键名是属性的名称,可以使用 . 分隔符来表示嵌套的属性。默认值是在找不到指定属性时使用的值。如果省略默认值,那么默认值为 null。

示例说明

假设定义了一个名为 com.example.log.name 的属性,在 application.yml 配置文件中可以这样使用:

server:
    port: ${PORT:8080}

com:
  example:
    log:
      name: mylogger

在这个例子中,我们引用了一个名为 PORT 的属性,如果该属性没有定义,那么默认值就是 8080。另外,我们定义了一个名为 com.example.log.name 的属性,它的值是 mylogger

特殊用法

还有一种特殊的用法,可以通过 ${random} 语法来生成随机数。如下所示:

myapp:
  password: ${random.value}

在这个例子中,属性 myapp.password 将会被设置为一个随机的字符串。

使用 @@ 引用属性变量

语法说明

@@ 语法用于引用环境变量或系统属性。环境变量和系统属性都是可以在系统中动态设置的值,因此可以在 Spring Boot 应用程序中方便地引用和使用。

@@ 语法的语法格式如下:

@@{属性名称:默认值}

其中,属性名称用于指定要引用的环境变量名称或系统属性名称。如果找不到指定的值,则使用默认值。如果省略默认值,则使用 null。

示例说明

假设我们在操作系统中设置了一个环境变量 MYAPP_SECRET,它的值是 123456。在 application.yml 配置文件中可以这样使用 @@语法:

myapp:
    secret: @@{MYAPP_SECRET:default}

现在,属性 myapp.secret 的值将会被设置为 123456。如果环境变量 MYAPP_SECRET 没有设置,那么值将会是 default

区别说明

在使用 ${} 语法时,属性值可以在配置文件中定义,它只能引用 Spring Boot 配置文件中的属性变量,而无法引用系统环境变量或系统属性。使用 @@ 语法时,它可以引用系统环境变量和系统属性,但它不能直接引用配置文件中的属性变量。

因此,在实际使用中,我们需要根据具体情况选择适当的语法来引用属性变量。

例如,如果要使用系统环境变量和系统属性,那么应该使用 @@ 语法,如果要使用配置文件中的属性变量,那么应该使用 ${} 语法。

另外,有时候为了方便操作,也可以将系统环境变量或系统属性的值设置成配置文件中的属性值,这样就可以通过 ${} 语法来引用它们了。

例如,我们可以设置一个系统属性 myapp.secret,它的值是 ${secret},其中 secret 是在应用程序的配置文件中定义的。然后,在应用程序中可以使用 ${} 语法来引用这个系统属性,就可以达到引用配置文件中的属性变量的效果了。

示例代码如下:

java -Dmyapp.secret=${secret} -jar myapp.jar
myapp:
    secret: mysecret

在这个例子中,我们将系统属性 myapp.secret 设置为 ${secret},其中 secret 是在配置文件中定义的。然后,我们在配置文件中引用 myapp.secret 属性,实现了从配置文件中引用属性的目的。

总之,${} 和 @@ 语法都是用于引用属性变量的语法,我们需要根据策略选择适当的语法来使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot配置文件属性变量引用方式${}和@@用法及区别说明 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • ps怎么拼心形图片? ps合成心形图片的技巧

    以下是“ps怎么拼心形图片? ps合成心形图片的技巧”的完整攻略: ps怎么拼心形图片? ps合成心形图片的技巧 Adobe Photoshop(简称PS)是一款非常流行的图像处理软件,用户可以使用PS合成心形图片。下面是一些PS合成心形图片的技巧,可以帮助用户设计出高质量的心形图片。 技巧1:使用“形状工具”绘制心形 用户可以使用PS中的“形状工具”绘制心…

    html 2023年5月18日
    00
  • phpword插件导出word文件时中文乱码问题处理方案

    我来讲解一下“phpword插件导出word文件时中文乱码问题处理方案”的完整攻略。 1. 问题描述 在使用phpword插件导出word文件时,可能会遇到中文乱码的问题,即导出的word文件中,中文内容无法正确显示。 2. 原因分析 这个中文乱码问题的原因通常是因为文档的编码设置不正确,或者是php语言本身对中文字符的处理方式不同。 3. 解决方法 下面是…

    html 2023年5月31日
    00
  • ASP.NET XmlDocument类详解

    ASP.NET XmlDocument类详解 一、XmlDocument类概述 XmlDocument是.NET框架中处理XML文档的一个类. 它提供了大量的API用于加载,操作和修改XML文档。 二、XmlDocument类的属性和方法 XmlDocument类具有以下一些常用属性和方法: 1. 加载和创建XML文档 XmlDocument xmlDoc …

    html 2023年5月30日
    00
  • Win10 Mobile预览版10581中存储设置/SD卡出现乱码怎么办?

    以下是详细的攻略: 问题描述 在Win10 Mobile预览版10581中,有用户反映存储设置中出现了乱码,导致无法正确设置SD卡存储。这个问题可能会对用户的使用造成一定的困扰。 解决办法 方法一:重新格式化SD卡 乱码问题可能是由于SD卡格式不兼容Win10 Mobile系统导致的。因此,我们首先可以尝试重新格式化SD卡来解决问题。步骤如下: 将SD卡插入…

    html 2023年5月31日
    00
  • 中文txt文档打开后乱码怎么办?

    下面是针对“中文txt文档打开后乱码怎么办?”的完整攻略。 问题描述 当我们使用文本编辑器打开中文txt文档时,如果遇到乱码,可能是由于文档编码格式不一致的问题导致的。 解决方案 为了解决这个问题,我们可以尝试以下几个步骤: 步骤1:检查文档编码格式 首先,我们需要判断一下文档的编码格式,如果是UTF-8格式,我们可以尝试打开文档时选择UTF-8编码格式,如…

    html 2023年5月31日
    00
  • libxml教程(图文详解)

    Libxml教程(图文详解) Libxml是一个用于解析和生成XML文档的库,广泛应用于世界各地的开发者中。本篇教程将带您了解Libxml的一些基本用法和示例。 安装Libxml 安装Libxml非常简单,只需使用apt-get或yum安装即可: sudo apt-get install libxml2-dev (Ubuntu/Debian) sudo yu…

    html 2023年5月30日
    00
  • MyBatis Xml映射文件之字符串替换方式

    MyBatis是Java中一款优秀的ORM框架,可以很方便地帮助开发者完成对数据库的操作,而MyBatis Xml映射文件则是这个框架很重要的一个部分。在编写MyBatis映射文件时,有时候需要进行一些字符串替换的操作,比如给SQL语句加上表前缀等。本文将详细讲解MyBatis Xml映射文件中的字符串替换方式,包括使用${}和使用#{}两种方式。 使用${…

    html 2023年5月30日
    00
  • 怎么下载网页中的视频?网站视频下载方法技术分享

    怎么下载网页中的视频?网站视频下载方法技术分享 在网页中,有很多视频资源,但是有些视频并不支持下载。以下是关于如何下载网页中的视频的攻略,包括以下几个步骤: 步骤1:使用浏览器插件 在浏览器中,有很多插件可以帮助您下载网页中的视频。以下是使用浏览器插件的步骤: 打开浏览器,并在地址栏中输入插件的名称,如“Video DownloadHelper”。 找到并安…

    html 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部