我正在寻找如何在XML中使用Java默认属性值,而无需在应用程序YML中指定任何内容。

这是我的Java配置,默认情况下,我想使用此URL值,直到从YML文件提供它为止。

@EnableConfigurationProperties
@ConfigurationProperties(prefix = "test.sample")
public @Data class SampleProperties {
   private String serverurl ="test.example.com";
}


当我尝试在XML中使用时

<property name="serverURL" value="${test.sample.serverurl}" />


投掷

IllegalArgumentException : Could not resolve placeholder 'test.sample.serverurl' in value "${test.sample.serverurl}"

最佳答案

您在XML中使用的占位符不包含缺少默认值时要使用的默认值

可以在占位符后缀:default-value的情况下提供默认值

<property name="serverURL" value="${test.sample.serverurl:http://localhost}" />


默认值中的:使示例变得复杂,更简单的示例可能是

value="example:default"
value="test.sample.port:8080"


可能有重复的Is there a way to specify a default property value in Spring XML?。这是decent tutorial on properties in Spring

10-06 14:38