【问题标题】:SpringBoot custom spring.config.locationSpring Boot 自定义 spring.config.location
【发布时间】:2018-05-06 09:43:14
【问题描述】:

我有一个简单的 SpringBoot 应用程序,结构如下:

我正在使用一个标准的 application.yml 文件,我在其中存储所有必要的道具,并使用 @ConfigurationProperties 注释在必要时注入它们。

现在对于一个 bean,我有很多道具,我不想用所有这些道具压倒我的通用 application.yml 文件。所以我想要一个单独的(我放在类路径中的服务目录下)。

根据 Spring 文档,我可以使用类似的东西:

java -jar myproject.jar --spring.config.location=classpath:/service/application.yml

但这不起作用,我得到了 NullPointer,这意味着没有注入属性。 我究竟做错了什么?如何将另一个 *.yml 文件与 application.yml 一起使用?

附:我知道我可以将它放在类路径中的 config 文件夹下,但是如果我需要两个自定义文件怎么办?

【问题讨论】:

  • 如果你这样做,常见的 application.yml(under /resources) 将被忽略。可能有一些 bean 使用此 yml 中的属性导致 NPE。

标签: spring-boot yaml


【解决方案1】:

如果您在不同的位置有 2 个配置,spring.config.location 将接受这些位置的逗号分隔列表

--spring.config.location=classpath:/resources/,classpath:/service/

您也可以只调用其他文件,例如“config.yml”,然后使用不同的名称

--spring.config.name=application,config

【讨论】:

  • 太棒了,非常感谢您提供的示例!这对我有用
  • 是的,对不起,我之前因为声誉低而不能投票。现在我可以)再次感谢!
猜你喜欢
  • 2019-02-08
  • 2018-04-22
  • 1970-01-01
  • 2015-05-14
  • 2020-10-26
  • 2019-12-05
  • 2019-03-15
  • 1970-01-01
  • 2019-07-07
相关资源
最近更新 更多