package org.dromara.common.core.config; import jakarta.validation.Validator; import org.hibernate.validator.HibernateValidator; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import java.util.Properties; /** * 校验框架配置类 * * @author Lion Li */ @AutoConfiguration(before = ValidationAutoConfiguration.class) public class ValidatorConfig { /** * 配置校验框架 快速失败模式 */ @Bean public Validator validator(MessageSource messageSource) { try (LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean()) { // 国际化 factoryBean.setValidationMessageSource(messageSource); // 设置使用 HibernateValidator 校验器 factoryBean.setProviderClass(HibernateValidator.class); Properties properties = new Properties(); // 设置快速失败模式(fail-fast),即校验过程中一旦遇到失败,立即停止并返回错误 properties.setProperty("hibernate.validator.fail_fast", "true"); factoryBean.setValidationProperties(properties); // 加载配置 factoryBean.afterPropertiesSet(); return factoryBean.getValidator(); } } }