Validation 支持如下几种校验,可以满足基本的业务逻辑,当然如果还是满足不了你的业务逻辑,可以选择定制校验规则。

定制校验逻辑

public class ConfigPropertiesValidator implements Validator {
    @Override
    public boolean supports(Class<?> aClass) {
        return AppConfigProperties.class.isAssignableFrom(aClass);
    }

    @Override
    public void validate(Object o, Errors errors) {
        AppConfigProperties config = (AppConfigProperties) o;
        if(StringUtils.isEmpty(config.getId())){
            errors.rejectValue("id""app.id.empty""[app.id] 属性必须要在配置文件配置");
        }else if (config.getId().length() < 5) {
            errors.rejectValue("id""app.id.short""[app.id] 属性的长度必须不能小于5");
        }
    }
}
@Validated
@Data
@ConfigurationProperties(prefix = "app")
@Component
public class AppConfigProperties {
//    @NotEmpty(message = "配置文件配置必须要配置[app.id]属性")
    private String id;
}
@Bean
public  ConfigPropertiesValidator configurationPropertiesValidator(){
  return new ConfigPropertiesValidator();
}

「注意:这里bean的方法名必须要 configurationPropertiesValidator,否则启动的时候不会执行该校验」

SpringBoot 开发秘籍 - 启动时配置校验-LMLPHP

错误信息即为我们自定义校验的结果。

小结

通过配置Spring Boot启动校验功能,可以快速的识别参数配置的错误,避免在使用组件的时候才发现问题,可以减少排查问题的工作量,并且在我们封装自定义的starter时可以有更好的体验。



收藏 等于白嫖点赞 才是真情!

SpringBoot 开发秘籍 - 启动时配置校验-LMLPHP




本文分享自微信公众号 - JAVA日知录(javadaily)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

09-11 13:24
查看更多