使用 spring.config.location 命令行参数时,为 Spring 的 @PropertySource 设置什么?

What to set for Spring's @PropertySource when using spring.config.location command line arg?

我定义了一个 @Config class 像这样:

@Config
@PropertySource(value = "")
public class Foo {
...
}

我 运行 我的程序包括以下内容:

 --spring.config.location=file:///Users/dev/workspace/application.yml

问题是我不能省略 PropertySource 注释的 'value' 属性。为什么需要这样设置?这会覆盖我在 --spring.config.location 中设置的内容吗?我应该使用 SimpleCommandLinePropertySource 而不是 --spring.config.location 吗?

当您使用 spring.config.location 使用外部 属性 文件时,您只需在配置中设置值 class:

@Config
@PropertySource(value = "${spring.config.location}")
public class Foo {
...
}