${}和@@都是springboot引用属性变量的方式,具体区别与用法:
1、${}常用于pom.xml,和 src/main/resources/application.properties等默认配置文件的属性变量引用。
语法为:field_name=${field_value}
pom.xml示例:
xml
<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示例:
logback日志配置
yaml
log.config.address=classpath:config/logback-spring.xml
logging.config=${log.config.address}
2、@@ 方式常用于引用springboot非默认 配置文件(即其他配置文件)中的变量,是springboot为替代${}属性
占位符产生,原因是${}
会被maven处理,所以引用非默认配置文件时起不到引用变量的作用。
语法为:
yaml
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
的属性变量时,就要使用@@方式
端口配置
yaml
server.port=@server.port.web@
logback日志配置
yaml
logging.config=@logging.config@