Spring Boot - 从依赖 jar 加载 application.properties/yml



我有一个Spring Boot应用程序,我想在其中按特定顺序将值注入@ConfigurationProperties bean。

例如

@ConfigurationProperties("myproperties") class MyProperties { private String property1; .... }

base-application.yml

myproperties: property1: some-value

上面的类和属性文件位于 jar 文件中。在我的 Spring Boot 应用程序的邮件应用程序中(它有上面的 jar 作为依赖项),我使用了@PropertySource(value = { "application.yml", "base-application.yml"}) 但在MyProperties中得到了null值.

我试过了

@PropertySources({
    @PropertySource("classpath:application.yml"),
    @PropertySource("classpath*:base-application.yml")
}) 

也是,但这也没有用。

如果我在application.yml中添加myproperties.property1值,那么它可以正常工作。是否可以从另一个 jar 内的属性文件中注入属性值?如果是这样,我在这里做错了什么?

无法通过@PropertySource批注加载 YAML 文件。所以在 在您需要以这种方式加载值的情况下,您需要使用 属性文件。 在此处查看文档

如果属性文件在jar的META-INF目录中,则可以按如下方式加载它们:"classpath*:/META-INF/*.properties"

最新更新