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日

相关文章

  • php操作xml入门之xml基本介绍及xml标签元素

    我来为你详细讲解 “php操作xml入门之xml基本介绍及xml标签元素”的完整攻略。 1. XML 的基本介绍 XML(eXtensible Markup Language)是可扩展标记语言,是一种用于独立于应用程序或厂商的平台中存储和传输数据的标准格式。XML 可以被用于表示简单到复杂的数据结构、网络中传递数据、生成文本与图形、存储数据等。 2. XML…

    html 2023年5月30日
    00
  • PHP XML操作类DOMDocument

    当涉及到在PHP中处理XML文档时,DOMDocument是一种非常强大的类。DOMDocument类允许您在XML文档的树形结构中操作元素,节点和文本。下面是DOMDocument类的详细攻略,包括创建DOMDocument对象、添加子元素、读取/修改元素值、删除元素等操作。 创建DOMDocument对象 要在PHP中操作XML文档,需要首先创建DOMD…

    html 2023年5月30日
    00
  • 热血传奇沙巴克藏宝阁从哪儿进 热血传奇沙巴克藏宝阁入口位置分享

    以下是“热血传奇沙巴克藏宝阁从哪儿进 热血传奇沙巴克藏宝阁入口位置分享”的完整攻略: 热血传奇沙巴克藏宝阁从哪儿进 热血传奇沙巴克藏宝阁入口位置分享 热血传奇沙巴克藏宝阁是一个非常重要的地方,里面有很多宝藏和珍贵的物品。但是,很多玩家不知道热血传奇沙巴克藏宝阁从哪儿进,下面是关于热血传奇沙巴克藏宝阁入口位置的详细攻略。 热血传奇沙巴克藏宝阁从哪儿进 热血传奇…

    html 2023年5月18日
    00
  • PS怎么怎么画漂亮的烟雾效果? ps烟雾的制作方法

    以下是在PS中制作漂亮的烟雾效果的详细攻略: 步骤1:创建新图层 打开您的PS软件,创建一个新的图层。 在新图层中,使用画笔工具或渐变工具,填充您想要添加烟雾效果的区域。 步骤2:添加烟雾效果 在新图层中,选择“滤镜”选项,然后选择“渲染”选项。 在渲染选项中,选择“云彩”或“差值云彩”选项。 调整云彩的大小、密度和透明度,以达到您想要的烟雾效果。 如果您想…

    html 2023年5月17日
    00
  • Android自定义View实现带4圆角或者2圆角的效果

    下面是详细讲解“Android自定义View实现带4圆角或者2圆角的效果”的完整攻略: 背景知识 在进行本次任务之前,我们需要了解以下知识点: 1. 自定义View 自定义View是一种Android开发中非常重要的技术,通过自定义View我们可以实现各种各样的UI效果,比如圆角矩形、自定义控件、进度条等。 2. Canvas和Paint Canvas是An…

    html 2023年5月31日
    00
  • Spring MVC参数传递中文乱码解决方法分享

    为了避免Spring MVC参数传递中文乱码问题,可以通过以下步骤进行解决: 1. 在web.xml中添加编码过滤器 在web.xml文件中,添加以下过滤器配置,用于对URL参数进行编码过滤,并指定编码为UTF-8: <filter> <filter-name>encodingFilter</filter-name> &l…

    html 2023年5月31日
    00
  • Android常见XML转义字符(总结)

    Android常见XML转义字符(总结) 在Android开发中,我们经常需要在XML文件中写入特殊字符以及一些转义字符。 下面是一些常见的XML转义字符以及它们的对应表示: 字符 转义表示 & & < < > > ” " ‘ ' 其中,&是XML文件中的特殊字符,所以需要使用相应的转义字符…

    html 2023年5月30日
    00
  • 网页微信怎么加好友久想手机微信加好友一样

    网页微信怎么加好友?与手机微信加好友一样吗? 在网页版微信中,您可以像在手机微信中一样添加好友。以下是关于如何在网页版微信中添加好友的攻略,包括以下几个步骤: 步骤1:登录网页版微信 首先,您需要登录网页版微信。您可以在微信官网上找到网页版微信,并使用您的微信账号和密码登录。 步骤2:搜索好友 在登录网页版微信后,您可以使用搜索功能来查找好友。您可以在搜索框…

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