无法使用@Value在Spring应用程序中获取Maven project.version属性

无法使用@Value在Spring应用程序中获取Maven project.version属性,第1张

无法使用@Value在Spring应用程序中获取Maven project.version属性

在对如何在SpringBoot应用程序中获取Maven项目版本进行了一些研究和试验之后,我找不到适合我的任何东西。

由于类加载器的问题,使用清单绝对是一条烂路,即,一个清单获得了Spring找到的第一个清单,在我的情况下,这不是我的应用程序之一。

我发现的一种解决方案是使用Maven资源插件来“过滤”(替换)资源文件中的属性。在这种情况下是spring

application.properties

以下是完成这项工作的步骤。

在pom文件中,使用以下定义激活资源过滤:

<resources>    <resource>        <filtering>true</filtering>        <directory>src/main/resources</directory>        <includes> <include>application.properties</include>        </includes>    </resource></resources>

application.properties
文件中:

application.name=@project.artifactId@build.version=@project.version@build.timestamp=@timestamp@

注意@ property @而不是$ {property}。

application.properties
文件中。

spring-boot-starter-parent
POM重新定义了标准的
${}
分隔符为
@

<resource.delimiter>@</resource.delimiter><!-- delimiter that doesn't clash with Spring ${} placeholders --><delimiters>    <delimiter>${resource.delimiter}</delimiter></delimiters>

然后可以使用以下方式在Spring中访问这些属性

@Value

@Value("${application.name}")private String applicationName;@Value("${build.version}")private String buildVersion;@Value("${build.timestamp}")private String buildTimestamp;


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4897840.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存