From 758ffcc199c1ab79db705a0f00e3b00865b2bc6d Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Sat, 12 Oct 2024 08:21:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A1=86=E6=9E=B6?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96long=E5=80=BC=E4=B8=BA=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E4=B8=B2=E5=A4=B1=E6=95=88=E5=92=8C=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E5=99=A8ValidatorFactory=E6=9C=AA=E5=85=B3=E9=97=AD=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/youlai/boot/config/WebMvcConfig.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/youlai/boot/config/WebMvcConfig.java b/src/main/java/com/youlai/boot/config/WebMvcConfig.java index 59aa3716..d448500b 100644 --- a/src/main/java/com/youlai/boot/config/WebMvcConfig.java +++ b/src/main/java/com/youlai/boot/config/WebMvcConfig.java @@ -15,7 +15,6 @@ import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.validation.beanvalidation.SpringConstraintValidatorFactory; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -35,8 +34,6 @@ public class WebMvcConfig implements WebMvcConfigurer { @Override public void configureMessageConverters(List> converters) { - converters.add(new StringHttpMessageConverter()); - MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); ObjectMapper objectMapper = jackson2HttpMessageConverter.getObjectMapper(); objectMapper.registerModule(new JavaTimeModule()); @@ -51,17 +48,27 @@ public class WebMvcConfig implements WebMvcConfigurer { objectMapper.registerModule(simpleModule); jackson2HttpMessageConverter.setObjectMapper(objectMapper); - converters.add(jackson2HttpMessageConverter); + + // 把 Jackson 的转换器放到最前面,确保优先使用 + converters.add(0, jackson2HttpMessageConverter); } + /** + * 配置校验器 + * + * @param autowireCapableBeanFactory 用于注入 SpringConstraintValidatorFactory + * @return Validator 实例 + */ @Bean public Validator validator(final AutowireCapableBeanFactory autowireCapableBeanFactory) { - ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class) + try (ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class) .configure() - .failFast(true) // failFast=true 不校验所有参数,只要出现校验失败情况直接返回,不再进行后续参数校验 + .failFast(true) // failFast=true 时,遇到第一个校验失败则立即返回,false 表示校验所有参数 .constraintValidatorFactory(new SpringConstraintValidatorFactory(autowireCapableBeanFactory)) - .buildValidatorFactory(); + .buildValidatorFactory()) { - return validatorFactory.getValidator(); + // 使用 try-with-resources 确保 ValidatorFactory 被正确关闭 + return validatorFactory.getValidator(); + } } }