服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - springboot配置文件属性变量引用方式${}和@@用法及区别说明

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

2022-10-12 13:15小白的小小白的白 Java教程

这篇文章主要介绍了springboot配置文件属性变量引用方式${}和@@用法及区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

配置文件属性变量引用${}和@@用法

${}和@@都是springboot引用属性变量的方式

具体区别与用法:

${}常用于pom.xml

和 src/main/resources/application.properties等默认配置文件的属性变量引用。

语法为:field_name=${field_value}

pom.xml示例:

?
1
2
3
4
5
6
7
8
9
10
11
<properties>
    <dubbo.version>2.7.0</dubbo.version>
</properties>
 
 <dependencies>
     <dependency>
         <groupId>org.apache.dubbo</groupId>
          <artifactId>dubbo</artifactId>
          <version>${dubbo.version}</version>
     </dependency>
 </dependencies>

application.properties示例:

?
1
2
3
#logback日志配置
log.config.address=classpath:config/logback-spring.xml
logging.config=${log.config.address}

@@方式常用于引用springboot非默认配置文件

(即其他配置文件)中的变量,是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以引用非默认配置文件时起不到引用变量的作用。

语法为:field_name=@field_value@

示例:

在实际项目开发中,为了在不同环境进行测试,我们会在src/main/resources目录下创建config文件夹,并在config中创建多个properties文件

例如:

local.properties, development.properties, production.properties,当我们在src/main/resources/application.properties文件中引用src/main/resources/config/local.properties的属性变量时,就要使用@@方式

?
1
2
3
4
5
#端口配置
server.port=@server.port.web@
 
#logback日志配置
logging.config=@logging.config@

配置文件中的“@”问题

springboot配置文件中的${…}和@…@

在springboot的配置文件中,即application.properties或application.yml

${}最好用于取springboot配置文件配置得值

@@引用其他文件(除springboot配置文件,像pom.xml)中定义的值, 用@ @

起因

从git拉取下来的代码,改一下数据库配置什么的开始运行。

报错:

found character '@' that cannot start any token. (Do not use @ for indentation)
 in 'reader', line 34, column 19:
            password: @spring.redis.password@

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

不应该阿,正常来说这里不应该报错。

原因

我猜测是有时候的编译没完全编译,看到编译后的文件里的内容并不是从pom.xml文件中读取的数据,显然是这块没有编译。

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

解决

打开侧边栏的maven,点击图中两个按钮刷新下项目。再次启动完美运行。还是不行就清理下缓存再刷新。

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_42315600/article/details/88608262

延伸 · 阅读

精彩推荐
  • Java教程Java多线程阻塞与唤醒代码示例

    Java多线程阻塞与唤醒代码示例

    本文主要向大家分享了Java多线程中的阻塞与唤醒的相关内容,通过这篇文章大家可以大致了解到进入线程阻塞状态和可执行状态的方法,需要的朋友可以了...

    Levi_moon7892021-01-12
  • Java教程java数据结构与算法之奇偶排序算法完整示例

    java数据结构与算法之奇偶排序算法完整示例

    这篇文章主要介绍了java数据结构与算法之奇偶排序算法,较为详细的分析了奇偶算法的原理并结合完整示例形式给出了实现技巧,需要的朋友可以参考下 ...

    modun5652020-06-03
  • Java教程简单讲解java中throws与throw的区别

    简单讲解java中throws与throw的区别

    这篇文章主要介绍了简单讲解java中throws与throw的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    @ 小浩4872020-07-18
  • Java教程整理总结Java多线程程序编写的要点

    整理总结Java多线程程序编写的要点

    这篇文章主要介绍了Java多线程程序编写的要点,包括线程的状态控制和优先级以及线程的通信问题等方面,非常之全面!需要的朋友可以参考下 ...

    memristor2062020-03-25
  • Java教程Java利用正则取标签之间的数据

    Java利用正则取标签之间的数据

    这篇文章主要介绍了Java利用正则取标签之间的数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    lip865522020-08-19
  • Java教程Java多线程之synchronized同步代码块详解

    Java多线程之synchronized同步代码块详解

    这篇文章主要为大家详细介绍了Java多线程之synchronized同步代码块,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,...

    小小茶花女10162022-08-14
  • Java教程Spring-AOP 静态普通方法名匹配切面操作

    Spring-AOP 静态普通方法名匹配切面操作

    这篇文章主要介绍了Spring-AOP 静态普通方法名匹配切面操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    小小工匠4642021-10-15
  • Java教程Java PDF 添加数字签名的实现方法

    Java PDF 添加数字签名的实现方法

    这篇文章主要介绍了Java PDF 添加数字签名的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    Tina_Tang5462021-10-18