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