From a94a0589dd4370d119a16a2c30783b503939bfd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Sun, 28 Nov 2021 21:03:48 +0800 Subject: [PATCH] =?UTF-8?q?update=20[=E9=87=8D=E7=A3=85=E6=9B=B4=E6=96=B0]?= =?UTF-8?q?=20Validator=20=E6=A0=A1=E9=AA=8C=E6=A1=86=E6=9E=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/TestI18nController.java | 42 +++++++++++++++++++ .../framework/config/ValidatorConfig.java | 26 ++++++++---- 2 files changed, 61 insertions(+), 7 deletions(-) diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java index c2ab0310b..40b031b51 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java @@ -5,16 +5,23 @@ import com.ruoyi.common.utils.MessageUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import lombok.Data; +import org.hibernate.validator.constraints.Range; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + /** * 测试国际化 * * @author Lion Li */ +@Validated @Api(value = "测试国际化控制器", tags = {"测试国际化管理"}) @RestController @RequestMapping("/demo/i18n") @@ -31,4 +38,39 @@ public class TestI18nController { public AjaxResult get(@ApiParam("国际化code") String code) { return AjaxResult.success(MessageUtils.message(code)); } + + /** + * Validator 校验国际化 + * 不传值 分别查看异常返回 + * + * 测试使用 not.null + */ + @ApiOperation("Validator 校验国际化") + @GetMapping("/test1") + public AjaxResult test1(@NotBlank(message = "{not.null}") String str) { + return AjaxResult.success(str); + } + + /** + * Bean 校验国际化 + * 不传值 分别查看异常返回 + * + * 测试使用 not.null + */ + @ApiOperation("Bean 校验国际化") + @GetMapping("/test2") + public AjaxResult test2(@Validated TestI18nBo bo) { + return AjaxResult.success(bo); + } + + @Data + public static class TestI18nBo { + + @NotBlank(message = "{not.null}") + private String name; + + @NotNull(message = "{not.null}") + @Range(min = 0, max = 100, message = "{length.not.valid}") + private Integer age; + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConfig.java index 258e855cd..0a2007c81 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConfig.java @@ -1,12 +1,14 @@ package com.ruoyi.framework.config; import org.hibernate.validator.HibernateValidator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; -import javax.validation.Validation; import javax.validation.Validator; -import javax.validation.ValidatorFactory; +import java.util.Properties; /** * 校验框架配置类 @@ -16,16 +18,26 @@ import javax.validation.ValidatorFactory; @Configuration public class ValidatorConfig { + @Autowired + private MessageSource messageSource; + /** * 配置校验框架 快速返回模式 */ @Bean public Validator validator() { - ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class) - .configure() - .failFast(true) - .buildValidatorFactory(); - return validatorFactory.getValidator(); + LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean(); + // 国际化 + factoryBean.setValidationMessageSource(messageSource); + // 设置使用 HibernateValidator 校验器 + factoryBean.setProviderClass(HibernateValidator.class); + Properties properties = new Properties(); + // 设置 快速异常返回 + properties.setProperty("hibernate.validator.fail_fast", "true"); + factoryBean.setValidationProperties(properties); + // 加载配置 + factoryBean.afterPropertiesSet(); + return factoryBean.getValidator(); } }