参考:https://www.jianshu.com/p/71f70766d165
https://blog.csdn.net/u012373815/article/details/72049796
https://www.cnblogs.com/magicalSam/p/7198420.html
https://www.cnblogs.com/mr-yang-localhost/p/7812038.html
package com.comtop.mop.config;
import org.hibernate.validator.HibernateValidator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
@Configuration
public class ValidatorConfiguration {
@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
MethodValidationPostProcessor postProcessor = new MethodValidationPostProcessor();
//设置validator模式为快速失败返回
postProcessor.setValidator(validator());
return postProcessor;
}
@Bean
public Validator validator(){
//快速验证模式
//false 普通验证模式
ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class )
.configure()
.addProperty( "hibernate.validator.fail_fast", "true" )
.buildValidatorFactory();
return validatorFactory.getValidator();
}
}
定义全局捕获异常的方法(最后两个方法适用于入参校验的)
package com.comtop.mop.exception;
import com.comtop.mop.common.RestObject;
import com.comtop.mop.security.shiro.CaptchaException;
import org.apache.shiro.authc.AuthenticationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.b