Closed
Description
My application uses @DefaultValue
annotation with a SpEl expression as default value. I assumed SpringBoot resolves the expression, but SpringBoot doesn't.
Example:
@SpringBootApplication
@EnableConfigurationProperties(SampleApplication.SampleProperties.class)
public class SampleApplication {
@ConstructorBinding
@ConfigurationProperties("sample")
public static class SampleProperties {
public SampleProperties(String prop1, @DefaultValue("${sample.prop1}") String prop2) {
System.out.println("prop1=" + prop1);
System.out.println("prop2=" + prop2);
}
}
public static void main(String[] args) {
System.setProperty("sample.prop1", "Hello World");
SpringApplication.run(SampleApplication.class, args);
}
}
Actual output:
prop1=Hello World
prop2=${sample.prop1}
Expected output:
prop1=Hello World
prop2=Hello World
It would be nice, if SpEl expressions in the @DefaultValue
annotations would be resolved as for other Spring annotations, for example, the@Value
annotation.