我有一个通过 ConfigurationProperties 配置的 bean:
@Component
@ConfigurationProperties(prefix = "mybean")
public class MyBean {
@NotEmpty
private String name;
// Getters, setters, ...
}
application.yml
我通过但在“两个级别”中配置字段值。在默认的 application.yml 中,我只是将值设置为另一个属性的值:
myBean.name: ${theValueOf.myBean.name}
在配置文件特定的 YML 文件中,我有:
theValueOf.myBean.name: 'The desired value'
我的期望是,如果我忘记指定属性,theValueOf.myBean.name
那么应用程序在启动时应该会失败,并显示无法解析占位符“theValueOf.myBean.name”的消息。相反,该字段name
被分配了值(字面意思)${theValueOf.myBean.name}
。
如果我用(并且不使用 ConfigurationProperties)注释该name
字段,并且忘记定义属性,那么应用程序在启动时会失败 - 正如预期的那样。@Value("${myBean.name}")
theValueOf.myBean.name
我的问题是:使用 ConfigurationProperties 时,如何使 Spring 在启动时失败并显示消息“无法解析占位符 ...”?