Java 将spring.config.location设置为相对路径

Java 将spring.config.location设置为相对路径,java,spring,spring-boot,Java,Spring,Spring Boot,是否可以在spring.config.location中使用相对路径 我在IntelliJ中有以下结构 |-dev.yml |-src |-main |-java |-com.foo |-MySpringApp.java 并运行它 --spring.config.location=dev.yml 这不管用 唯一有效的方法是设置完整路径 --spring.config.location=/user/.../myApp/dev.yml 我不知道相对路径,但如果将d

是否可以在
spring.config.location
中使用相对路径

我在IntelliJ中有以下结构

|-dev.yml
|-src
  |-main
  |-java
    |-com.foo
      |-MySpringApp.java
并运行它

--spring.config.location=dev.yml
这不管用

唯一有效的方法是设置完整路径

--spring.config.location=/user/.../myApp/dev.yml


我不知道相对路径,但如果将dev.yml文件放在类路径中,可以使用
classpath:dev.yml

奇怪,没有人回答过这个问题

我只是自己摸索出来的

相对路径总是会起作用的,因为Java是从某个目录运行的,无论何时何地运行它。只是一个发现它是什么的例子

在我使用Win10、Java 1.8、IntelliJ 2018和Spring Boot 2.0.2的情况下,我的应用程序作为IntelliJ中的Spring Boot应用程序运行,我的相对路径是相对于项目根的

因此,对于您,我假设它以相同的方式开始,使用项目根。因为这是属性所在的位置,所以需要
,然后因为它是一个目录,所以需要在末尾附加一个斜杠:

--spring.config.location=./

这不会让我在应用程序中嵌入配置文件吗?我不想这么做不。它使您将文件放在runtimr类路径上,这并不意味着嵌入war文件。
file://
只能处理绝对路径,我必须使用类路径。e、 g.
classpath:./application.yaml
使其工作。如果没有使用classpath作为前缀,上述操作将无法正常工作。对于docker compose,这是有效的:
SPRING\u CONFIG\u位置:'classpath:./application.yaml'