【发布时间】:2017-11-07 15:42:41
【问题描述】:
如何在应用程序启动期间检查属性文件中的值是否符合我的预期?直接注释字段不起作用。 我正在使用 spring boot 1.5.3.RELEASE,spring 4.3.8.RELEASE
服务:
@Service
@Validated
public class ConfigService {
@URL
@Value("${checkout.url}")
private String checkoutUrl;
@Size(max = 26)
@Value("${checkout.payment-method}")
private String paymentMethod;
}
属性文件(application.properties):
checkout.url=not-a-url-at-all
checkout.payment-method=CreditCardButMuchTooLongToQualifyForSizeValidator
【问题讨论】:
-
作为一个选项,您可以注释这些字段的设置器(而不是直接注释字段)并在这些设置器中进行所有验证。然后,如果验证失败,您可以抛出错误。
-
@RomanProshin:在设置器上设置验证不起作用,我遇到了一个异常:交叉参数约束 X 没有交叉参数验证器。方法的验证是在返回值上执行的,对于 settter 来说是 'void'
-
验证仅适用于
@ConfigurationProperties注释类并结合使用@EnableConfigurationProperties。 -
嗨,@M.Deinum,这听起来像是正在发生的事情,但是如果这不是太麻烦的话,您能否在答案中添加解释为什么会这样?谢谢。
标签: java spring validation hibernate-validator