Spring Boot:使用在 yaml 中配置的 Maven 属性

2022-09-04 04:55:25

我正在尝试从 Maven 中提取一些属性,并在我的应用启动时打印它们。我正在使用Spring Boot,因此资源过滤会自动为我完成。

在我的应用程序中.yml 我有以下内容

  applicationName: "@project.artifactId@"
  buildVersion: "@project.version@"
  buildTimestamp: "@maven.build.timestamp@"

当我在IntelliJ上运行此内容时,我得到了所需的结果,我的属性按预期填充和打印(单引号具有相同的结果)删除引号将给我一个关于使用“@”字符的SnakeYaml的例外

当我在Cent-OS上运行它时,通过一个jar(java -jar blah..blah)属性没有被解析,而是被视为字符串,而不是正确的版本号等,打印的是上面引号内的字符串。

关于如何解决这个问题的任何想法?它与我运行jar的方式有关吗?

我以为例


答案 1
@Value("${applicationName}")
private String applicationName;

答案 2

你可以用编程方式和类似的东西来获得它们。getClass().getPackage().getImplementationVersion()


推荐