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'