From a5ed284658d70875e74c4c8ca2924de933e7d9af Mon Sep 17 00:00:00 2001 From: xiaoQQya <xiaoQQya@126.com> Date: 星期六, 04 二月 2023 18:13:47 +0800 Subject: [PATCH] fix(JsonUtil): 修复 Redis 中 Object 序列化与反序列化不一致导致报错的问题 --- src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java | 28 +++++++++++++++++++++++----- 1 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java b/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java index 4e900e2..05f7481 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/GlobalResponseAdvice.java @@ -1,32 +1,41 @@ package com.genersoft.iot.vmp.conf; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.support.spring.http.converter.FastJsonHttpMessageConverter; import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; import com.genersoft.iot.vmp.vmanager.bean.WVPResult; +import org.jetbrains.annotations.NotNull; +import org.springframework.boot.autoconfigure.http.HttpMessageConverters; +import org.springframework.context.annotation.Bean; import org.springframework.core.MethodParameter; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; +import java.util.List; + /** * 鍏ㄥ眬缁熶竴杩斿洖缁撴灉 + * @author lin */ @RestControllerAdvice public class GlobalResponseAdvice implements ResponseBodyAdvice<Object> { @Override - public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) { + public boolean supports(@NotNull MethodParameter returnType, @NotNull Class<? extends HttpMessageConverter<?>> converterType) { return true; } + @Override - public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { + public Object beforeBodyWrite(Object body, @NotNull MethodParameter returnType, @NotNull MediaType selectedContentType, @NotNull Class<? extends HttpMessageConverter<?>> selectedConverterType, @NotNull ServerHttpRequest request, @NotNull ServerHttpResponse response) { // 鎺掗櫎api鏂囨。鐨勬帴鍙o紝杩欎釜鎺ュ彛涓嶉渶瑕佺粺涓� - String[] excludePath = {"/v3/api-docs","/api/v1"}; + String[] excludePath = {"/v3/api-docs","/api/v1","/index/hook"}; for (String path : excludePath) { if (request.getURI().getPath().startsWith(path)) { return body; @@ -43,9 +52,18 @@ } if (body instanceof String) { - return JSON.toJSON(WVPResult.success(body)); + return JSON.toJSONString(WVPResult.success(body)); } return WVPResult.success(body); } + + /** + * 闃叉杩斿洖string鏃跺嚭閿� + * @return + */ + @Bean + public HttpMessageConverters custHttpMessageConverter() { + return new HttpMessageConverters(new FastJsonHttpMessageConverter()); + } } -- Gitblit v1.8.0