用"@"包装 application.name 值,这是什么意思?



将'@'添加到应用程序属性的名称值到开头和结尾是什么意思?

我找不到这样的东西的用法。我也检查了 Spring 文档,但我找不到它。这种用法是编程的通用用法还是特定于 Spring 的应用程序属性?

请浏览文档

而不是硬编码一些属性,这些属性也在您的 项目的构建配置,您可以通过以下方式自动展开它们 而是使用现有的生成配置。这是可能的 Maven和Gradle。

您提到的格式适用于Maven

您可以通过以下方式自动扩展 Maven 项目中的属性 使用资源筛选。如果您使用 spring-boot-starter-parent, 然后,您可以使用@.引用Maven的"项目属性"。@ 占位符

更新

将弹簧启动执行器依赖项添加到 pom 中.xml

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

公开info端点(对于 http :management.endpoints.web.exposure.include=info(

可以对此进行快速验证。

将以下属性添加到 pom.xml

<properties>
<app.info.test>Test Value</app.info.test>
</properties>

以及应用程序属性文件中的以下条目

info.app.name= Test App
info.app.java.source=1.8
info.app.test=@app.info.test@

点击 http://localhost:8080/actuator/info 将给出以下响应

{"app":{"name":"Test App","java":{"source":"1.8"},"test":"Test Value"}}

直接答案是您在应用程序中与@name@一起存储的值.属性在项目构建开始时初始化(基于您使用命令传递的相同参数名称(。

当您想在构建时传递该变量的值时,

使用它或因环境而异的值。如果您不这样做,那么它的值将变为固定值。

当您想要传递一些在您的应用程序中常量或重复使用的参数时,例如邮件配置或 AWS 配置、版本等,这些参数在 application.properties 文件中定义。

最新更新