Reputation: 430
I have a Spring Boot application where I would like to inject values into a @ConfigurationProperties bean in a specific order.
For example,
@ConfigurationProperties("myproperties")
class MyProperties {
private String property1;
....
}
myproperties:
property1: some-value
The above class and properties file is in a jar file. In the mail application of my Spring Boot app (which has the above jar as dependency) I used @PropertySource(value = { "application.yml", "base-application.yml"})
but got null
values in MyProperties
.
I tried
@PropertySources({
@PropertySource("classpath:application.yml"),
@PropertySource("classpath*:base-application.yml")
})
as well, but that didn't work either.
If I add the myproperties.property1 value in application.yml then it works fine. Is it possible to inject property values from a property file which is inside of another jar? If so, what am I doing wrong here?
Upvotes: 6
Views: 5955
Reputation: 8386
if property files are in META-INF directory of jar, you can load of them as follows: "classpath*:/META-INF/*.properties"
Upvotes: 0
Reputation: 1006
YAML files can’t be loaded via the @PropertySource annotation. So in the case that you need to load values that way, you need to use a properties file. Check the docs here
Upvotes: 5