Spring 启动 spring.config.additional-location 作为相对路径
Spring Boot spring.config.additional-location as relative path
我有一个 Spring 具有这种结构的引导项目:
- /my-config
- production-settings.yml
- local-settings.yml
- /src
- /main
- /java
- (the usual Java stuff)
- /resources
- application.yml
这是我的 application.yml
:
my.personal.value: ${MY_PLACEHOLDER}
我使用 local-settings.yml
:
中定义的占位符
MY_PLACEHOLDER: something
有人可以告诉我如何将 spring.config.additional-location
与文件 local-settings.yml
的相对路径一起使用,以便可以解析占位符。
谢谢。
您可以使用@PropertySource("file:./my-config/local-settings.yml")
测试相对路径,看看是否加载了my.personal.value
。
@Configuration
// If the relative path is valid, just comment the PropertySource.
// @PropertySource("file:./my-config/local-settings.yml")
public class MyPersonConfig {
@Value("${my.personal.value}")
private String value;
@PostConstruct
void run() {
System.out.println(value);
}
}
如果它工作正常,您可以设置 JVM 选项并启动您的 jar。更改 local-settings.yml
或 production-settings.yml
以进行测试。
java -jar -Dspring.config.additional-location=file:./my-config/local-settings.yml build/libs/your.jar
完整代码为here.
我有一个 Spring 具有这种结构的引导项目:
- /my-config
- production-settings.yml
- local-settings.yml
- /src
- /main
- /java
- (the usual Java stuff)
- /resources
- application.yml
这是我的 application.yml
:
my.personal.value: ${MY_PLACEHOLDER}
我使用 local-settings.yml
:
MY_PLACEHOLDER: something
有人可以告诉我如何将 spring.config.additional-location
与文件 local-settings.yml
的相对路径一起使用,以便可以解析占位符。
谢谢。
您可以使用@PropertySource("file:./my-config/local-settings.yml")
测试相对路径,看看是否加载了my.personal.value
。
@Configuration
// If the relative path is valid, just comment the PropertySource.
// @PropertySource("file:./my-config/local-settings.yml")
public class MyPersonConfig {
@Value("${my.personal.value}")
private String value;
@PostConstruct
void run() {
System.out.println(value);
}
}
如果它工作正常,您可以设置 JVM 选项并启动您的 jar。更改 local-settings.yml
或 production-settings.yml
以进行测试。
java -jar -Dspring.config.additional-location=file:./my-config/local-settings.yml build/libs/your.jar
完整代码为here.