Spring boot SpringBoot自定义spring.config.location

Spring boot SpringBoot自定义spring.config.location,spring-boot,yaml,Spring Boot,Yaml,我有一个简单的SpringBoot应用程序,其结构如下: 我使用的是一个标准的application.yml文件,其中存储了所有必要的道具,并在必要时使用@ConfigurationProperties注释注入它们 现在对于一个bean,我有很多道具,我不想用这些道具压倒我的公共application.yml文件。所以我想要一个单独的(我把它放在类路径中的service dir下) 根据Spring文档,我可以使用如下内容: java -jar myproject.jar --spring.c

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

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

现在对于一个bean,我有很多道具,我不想用这些道具压倒我的公共application.yml文件。所以我想要一个单独的(我把它放在类路径中的service dir下)

根据Spring文档,我可以使用如下内容:

java -jar myproject.jar --spring.config.location=classpath:/service/application.yml
但这不起作用,我得到了null指针,这意味着属性没有被注入。 我做错了什么?如何将另一个*.yml文件与application.yml一起使用


另外,我知道我可以把它放在classpath的config文件夹下,但是如果我需要两个自定义文件呢?

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

--spring.config.location=classpath:/resources/,classpath:/service/
您也可以调用另一个文件,如“config.yml”,然后使用不同的名称

--spring.config.name=application,config

如果执行此操作,将忽略common application.yml(在/resources下)。这个yml中可能有一些使用bean的属性导致NPE。太棒了,非常感谢你的例子!这对我有用是的,对不起,早些时候我因为名声不好而不能投票。现在我可以)再次感谢!