Explorar el Código

fix使用fastjson序列化

Eric hace 1 año
padre
commit
922fd0842f
Se han modificado 18 ficheros con 122 adiciones y 384 borrados
  1. 7 3
      audio-analysis/src/main/java/com/yonge/audio/config/LocalFastJsonHttpMessageConverter.java
  2. 13 63
      audio-analysis/src/main/java/com/yonge/audio/config/WebMvcConfig.java
  3. 7 3
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/config/LocalFastJsonHttpMessageConverter.java
  4. 2 53
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/config/WebMvcConfig.java
  5. 3 3
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/config/jackson/JacksonConfig.java
  6. 8 3
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/LocalFastJsonHttpMessageConverter.java
  7. 16 65
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/WebMvcConfig.java
  8. 3 3
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/jackson/JacksonConfig.java
  9. 8 3
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/LocalFastJsonHttpMessageConverter.java
  10. 3 53
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/WebMvcConfig.java
  11. 3 3
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/jackson/JacksonConfig.java
  12. 8 3
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/LocalFastJsonHttpMessageConverter.java
  13. 3 53
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/WebMvcConfig.java
  14. 3 3
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/jackson/JacksonConfig.java
  15. 19 2
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/LocalFastJsonHttpMessageConverter.java
  16. 13 62
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/WebMvcConfig.java
  17. 3 3
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/jackson/JacksonConfig.java
  18. 0 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/config/LocalFastJsonHttpMessageConverter.java

+ 7 - 3
audio-analysis/src/main/java/com/yonge/audio/config/LocalFastJsonHttpMessageConverter.java

@@ -2,10 +2,12 @@ package com.yonge.audio.config;
 
 import com.alibaba.fastjson.serializer.JSONSerializer;
 import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
 import com.alibaba.fastjson.serializer.ValueFilter;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 import com.vdurmont.emoji.EmojiParser;
 import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpInputMessage;
 import org.springframework.http.HttpOutputMessage;
@@ -13,8 +15,10 @@ import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.http.converter.HttpMessageNotWritableException;
 
 import java.io.IOException;
+import java.io.OutputStream;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.util.Date;
 
 public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
 
@@ -28,12 +32,12 @@ public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConver
 	@Override
 	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
 
-		/*OutputStream out = outputMessage.getBody();
+		OutputStream out = outputMessage.getBody();
 		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
 		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
 		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
 		byte[] bytes = text.getBytes(getCharset());
-		out.write(bytes);*/
+		out.write(bytes);
 	}
 }
 
@@ -43,7 +47,7 @@ class EmojiSerializer implements ObjectSerializer{
 	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
 		serializer.write(EmojiParser.parseToUnicode(object.toString()));
 	}
-	
+
 }
 
 class EnumFilter implements ValueFilter {

+ 13 - 63
audio-analysis/src/main/java/com/yonge/audio/config/WebMvcConfig.java

@@ -1,85 +1,35 @@
 package com.yonge.audio.config;
 
-import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
-import com.google.common.collect.Lists;
-import com.yonge.cooleshow.biz.dal.config.jackson.JacksonConfig;
-import com.yonge.cooleshow.biz.dal.config.jackson.MappingJSONHttpMessageConverter;
-import com.yonge.cooleshow.common.config.EnumConverterFactory;
+import java.util.ArrayList;
+import java.util.List;
+
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
+import com.yonge.cooleshow.common.config.EnumConverterFactory;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {
-	
+
 	/**
 	 * 枚举类的转换器 addConverterFactory
 	 */
 	@Override
 	public void addFormatters(FormatterRegistry registry) {
-		// 枚举转换器
 		registry.addConverterFactory(new EnumConverterFactory());
-		// 字符串时间转换器
-		registry.addConverter(new JacksonConfig.CustomStringDateConverter());
 	}
 
-	/**
-	 * @param converters List<HttpMessageConverter<?>>
-	 */
-	@Override
-	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
-		//WebMvcConfigurer.super.configureMessageConverters(converters);
-
-		// 如果存在fastJson的转换器,将其移除
-		converters.removeIf(httpMessageConverter -> httpMessageConverter instanceof FastJsonHttpMessageConverter);
-
-		// 需要重新加入jackson的转换器,该处的objectMapper已经在配置中注册了
-		MappingJSONHttpMessageConverter converter = new MappingJSONHttpMessageConverter(new JacksonConfig.JacksonObjectMapper());
-		converter.setDefaultCharset(StandardCharsets.UTF_8); // 字符编号
-		converters.add(0, converter);
-
-		// 添加String转换器
-		converters.add(utf8StringHttpMessageConverter());
-	}
-
-	/**
-	 * 自定义String转换器
-	 * @return HttpMessageConverters
-	 */
-	//@Bean
-	@Primary
-	public StringHttpMessageConverter utf8StringHttpMessageConverter() {
-
-		StringHttpMessageConverter converter = new StringHttpMessageConverter();
-
-		List<MediaType> mediaTypes = Lists.newArrayList();
-		mediaTypes.add(MediaType.TEXT_HTML);
-		mediaTypes.add(MediaType.TEXT_PLAIN);
-		mediaTypes.add(MediaType.TEXT_XML);
-		mediaTypes.add(MediaType.APPLICATION_XML);
-
-		converter.setSupportedMediaTypes(mediaTypes);
-		converter.setDefaultCharset(StandardCharsets.UTF_8);
-
-		return converter;
-	}
-
-	//@Bean
-    public HttpMessageConverters fastJsonHttpMessageConverters(){
+	@Bean
+	public HttpMessageConverters fastJsonHttpMessageConverters(){
 		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
-        List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
-        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
-        converter.setSupportedMediaTypes(fastMediaTypes);
-        return new HttpMessageConverters(converter);
-    }
+		List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
+		fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+		converter.setSupportedMediaTypes(fastMediaTypes);
+		return new HttpMessageConverters(converter);
+	}
 
 }

+ 7 - 3
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/config/LocalFastJsonHttpMessageConverter.java

@@ -2,10 +2,12 @@ package com.yonge.cooleshow.bbs.config;
 
 import com.alibaba.fastjson.serializer.JSONSerializer;
 import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
 import com.alibaba.fastjson.serializer.ValueFilter;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 import com.vdurmont.emoji.EmojiParser;
 import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpInputMessage;
 import org.springframework.http.HttpOutputMessage;
@@ -13,8 +15,10 @@ import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.http.converter.HttpMessageNotWritableException;
 
 import java.io.IOException;
+import java.io.OutputStream;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.util.Date;
 
 public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
 
@@ -28,12 +32,12 @@ public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConver
 	@Override
 	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
 
-		/*OutputStream out = outputMessage.getBody();
+		OutputStream out = outputMessage.getBody();
 		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
 		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
 		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
 		byte[] bytes = text.getBytes(getCharset());
-		out.write(bytes);*/
+		out.write(bytes);
 	}
 }
 
@@ -43,7 +47,7 @@ class EmojiSerializer implements ObjectSerializer{
 	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
 		serializer.write(EmojiParser.parseToUnicode(object.toString()));
 	}
-	
+
 }
 
 class EnumFilter implements ValueFilter {

+ 2 - 53
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/config/WebMvcConfig.java

@@ -1,21 +1,14 @@
 package com.yonge.cooleshow.bbs.config;
 
-import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
-import com.google.common.collect.Lists;
-import com.yonge.cooleshow.bbs.config.jackson.JacksonConfig;
-import com.yonge.cooleshow.bbs.config.jackson.MappingJSONHttpMessageConverter;
 import com.yonge.cooleshow.common.config.EnumConverterFactory;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -28,10 +21,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
 	 */
 	@Override
 	public void addFormatters(FormatterRegistry registry) {
-		// 枚举转换器
 		registry.addConverterFactory(new EnumConverterFactory());
-		// 字符串时间转换器
-		registry.addConverter(new JacksonConfig.CustomStringDateConverter());
 	}
 
 	@Override
@@ -49,48 +39,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
 //		registry.addInterceptor(operationLogInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
 	}
 
-	/**
-	 * @param converters List<HttpMessageConverter<?>>
-	 */
-	@Override
-	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
-		//WebMvcConfigurer.super.configureMessageConverters(converters);
-
-		// 如果存在fastJson的转换器,将其移除
-		converters.removeIf(httpMessageConverter -> httpMessageConverter instanceof FastJsonHttpMessageConverter);
-
-		// 需要重新加入jackson的转换器,该处的objectMapper已经在配置中注册了
-		MappingJSONHttpMessageConverter converter = new MappingJSONHttpMessageConverter(new JacksonConfig.JacksonObjectMapper());
-		converter.setDefaultCharset(StandardCharsets.UTF_8); // 字符编号
-		converters.add(0, converter);
-
-		// 添加String转换器
-		converters.add(utf8StringHttpMessageConverter());
-	}
-
-	/**
-	 * 自定义String转换器
-	 * @return HttpMessageConverters
-	 */
-	//@Bean
-	@Primary
-	public StringHttpMessageConverter utf8StringHttpMessageConverter() {
-
-		StringHttpMessageConverter converter = new StringHttpMessageConverter();
-
-		List<MediaType> mediaTypes = Lists.newArrayList();
-		mediaTypes.add(MediaType.TEXT_HTML);
-		mediaTypes.add(MediaType.TEXT_PLAIN);
-		mediaTypes.add(MediaType.TEXT_XML);
-		mediaTypes.add(MediaType.APPLICATION_XML);
-
-		converter.setSupportedMediaTypes(mediaTypes);
-		converter.setDefaultCharset(StandardCharsets.UTF_8);
-
-		return converter;
-	}
-
-	//@Bean
+	@Bean
 	public HttpMessageConverters fastJsonHttpMessageConverters() {
 		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
 		List<MediaType> fastMediaTypes = new ArrayList<MediaType>();

+ 3 - 3
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/config/jackson/JacksonConfig.java

@@ -51,9 +51,9 @@ import java.util.TimeZone;
 /**
  * JSON LocalDateTime 序列化、反序列化配置
  */
-@Configuration
-@ConditionalOnClass(ObjectMapper.class)
-@AutoConfigureBefore(JacksonAutoConfiguration.class)
+//@Configuration
+//@ConditionalOnClass(ObjectMapper.class)
+//@AutoConfigureBefore(JacksonAutoConfiguration.class)
 public class JacksonConfig {
 
     public static final String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; // 时间格式

+ 8 - 3
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/LocalFastJsonHttpMessageConverter.java

@@ -2,10 +2,12 @@ package com.yonge.cooleshow.cms.config;
 
 import com.alibaba.fastjson.serializer.JSONSerializer;
 import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
 import com.alibaba.fastjson.serializer.ValueFilter;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 import com.vdurmont.emoji.EmojiParser;
 import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpInputMessage;
 import org.springframework.http.HttpOutputMessage;
@@ -13,8 +15,10 @@ import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.http.converter.HttpMessageNotWritableException;
 
 import java.io.IOException;
+import java.io.OutputStream;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.util.Date;
 
 public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
 
@@ -28,12 +32,12 @@ public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConver
 	@Override
 	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
 
-		/*OutputStream out = outputMessage.getBody();
+		OutputStream out = outputMessage.getBody();
 		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
 		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
 		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
 		byte[] bytes = text.getBytes(getCharset());
-		out.write(bytes);*/
+		out.write(bytes);
 	}
 }
 
@@ -43,7 +47,7 @@ class EmojiSerializer implements ObjectSerializer{
 	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
 		serializer.write(EmojiParser.parseToUnicode(object.toString()));
 	}
-	
+
 }
 
 class EnumFilter implements ValueFilter {
@@ -67,3 +71,4 @@ class EnumFilter implements ValueFilter {
 		return value;
 	}
 }
+

+ 16 - 65
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/WebMvcConfig.java

@@ -1,29 +1,23 @@
 package com.yonge.cooleshow.cms.config;
 
-import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
-import com.google.common.collect.Lists;
-import com.yonge.cooleshow.cms.config.jackson.JacksonConfig;
-import com.yonge.cooleshow.cms.config.jackson.MappingJSONHttpMessageConverter;
-import com.yonge.cooleshow.cms.interceptor.OperationLogInterceptor;
-import com.yonge.cooleshow.common.config.EnumConverterFactory;
+import java.util.ArrayList;
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
+import com.yonge.cooleshow.cms.interceptor.OperationLogInterceptor;
+import com.yonge.cooleshow.common.config.EnumConverterFactory;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {
-	
+
 	@Autowired
 	private OperationLogInterceptor operationLogInterceptor;
 
@@ -32,65 +26,22 @@ public class WebMvcConfig implements WebMvcConfigurer {
 	 */
 	@Override
 	public void addFormatters(FormatterRegistry registry) {
-		// 枚举转换器
 		registry.addConverterFactory(new EnumConverterFactory());
-		// 字符串时间转换器
-		registry.addConverter(new JacksonConfig.CustomStringDateConverter());
 	}
-	
+
 	@Override
 	public void addInterceptors(InterceptorRegistry registry) {
 		registry.addInterceptor(operationLogInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
 	}
 
-	/**
-	 * @param converters List<HttpMessageConverter<?>>
-	 */
-	@Override
-	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
-		//WebMvcConfigurer.super.configureMessageConverters(converters);
-
-		// 如果存在fastJson的转换器,将其移除
-		converters.removeIf(httpMessageConverter -> httpMessageConverter instanceof FastJsonHttpMessageConverter);
-
-		// 需要重新加入jackson的转换器,该处的objectMapper已经在配置中注册了
-		MappingJSONHttpMessageConverter converter = new MappingJSONHttpMessageConverter(new JacksonConfig.JacksonObjectMapper());
-		converter.setDefaultCharset(StandardCharsets.UTF_8); // 字符编号
-		converters.add(0, converter);
-
-		// 添加String转换器
-		converters.add(utf8StringHttpMessageConverter());
-	}
-
-	/**
-	 * 自定义String转换器
-	 * @return HttpMessageConverters
-	 */
-	//@Bean
-	@Primary
-	public StringHttpMessageConverter utf8StringHttpMessageConverter() {
-
-		StringHttpMessageConverter converter = new StringHttpMessageConverter();
-
-		List<MediaType> mediaTypes = Lists.newArrayList();
-		mediaTypes.add(MediaType.TEXT_HTML);
-		mediaTypes.add(MediaType.TEXT_PLAIN);
-		mediaTypes.add(MediaType.TEXT_XML);
-		mediaTypes.add(MediaType.APPLICATION_XML);
-
-		converter.setSupportedMediaTypes(mediaTypes);
-		converter.setDefaultCharset(StandardCharsets.UTF_8);
-
-		return converter;
-	}
-
-	//@Bean
-    public HttpMessageConverters fastJsonHttpMessageConverters(){
+	@Bean
+	public HttpMessageConverters fastJsonHttpMessageConverters(){
 		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
-        List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
-        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
-        converter.setSupportedMediaTypes(fastMediaTypes);
-        return new HttpMessageConverters(converter);
-    }
+		List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
+		fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+		converter.setSupportedMediaTypes(fastMediaTypes);
+		return new HttpMessageConverters(converter);
+	}
 
 }
+

+ 3 - 3
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/config/jackson/JacksonConfig.java

@@ -51,9 +51,9 @@ import java.util.TimeZone;
 /**
  * JSON LocalDateTime 序列化、反序列化配置
  */
-@Configuration
-@ConditionalOnClass(ObjectMapper.class)
-@AutoConfigureBefore(JacksonAutoConfiguration.class)
+//@Configuration
+//@ConditionalOnClass(ObjectMapper.class)
+//@AutoConfigureBefore(JacksonAutoConfiguration.class)
 public class JacksonConfig {
 
     public static final String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; // 时间格式

+ 8 - 3
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/LocalFastJsonHttpMessageConverter.java

@@ -2,10 +2,12 @@ package com.yonge.cooleshow.admin.config;
 
 import com.alibaba.fastjson.serializer.JSONSerializer;
 import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
 import com.alibaba.fastjson.serializer.ValueFilter;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 import com.vdurmont.emoji.EmojiParser;
 import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpInputMessage;
 import org.springframework.http.HttpOutputMessage;
@@ -13,8 +15,10 @@ import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.http.converter.HttpMessageNotWritableException;
 
 import java.io.IOException;
+import java.io.OutputStream;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.util.Date;
 
 public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
 
@@ -28,12 +32,12 @@ public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConver
 	@Override
 	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
 
-		/*OutputStream out = outputMessage.getBody();
+		OutputStream out = outputMessage.getBody();
 		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
 		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
 		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
 		byte[] bytes = text.getBytes(getCharset());
-		out.write(bytes);*/
+		out.write(bytes);
 	}
 }
 
@@ -43,7 +47,7 @@ class EmojiSerializer implements ObjectSerializer{
 	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
 		serializer.write(EmojiParser.parseToUnicode(object.toString()));
 	}
-	
+
 }
 
 class EnumFilter implements ValueFilter {
@@ -67,3 +71,4 @@ class EnumFilter implements ValueFilter {
 		return value;
 	}
 }
+

+ 3 - 53
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/WebMvcConfig.java

@@ -1,21 +1,14 @@
 package com.yonge.cooleshow.admin.config;
 
-import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
-import com.google.common.collect.Lists;
-import com.yonge.cooleshow.admin.config.jackson.JacksonConfig;
-import com.yonge.cooleshow.admin.config.jackson.MappingJSONHttpMessageConverter;
 import com.yonge.cooleshow.common.config.EnumConverterFactory;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -28,10 +21,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
 	 */
 	@Override
 	public void addFormatters(FormatterRegistry registry) {
-		// 枚举转换器
 		registry.addConverterFactory(new EnumConverterFactory());
-		// 字符串时间转换器
-		registry.addConverter(new JacksonConfig.CustomStringDateConverter());
 	}
 
 	@Override
@@ -49,48 +39,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
 //		registry.addInterceptor(operationLogInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
 	}
 
-	/**
-	 * @param converters List<HttpMessageConverter<?>>
-	 */
-	@Override
-	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
-		//WebMvcConfigurer.super.configureMessageConverters(converters);
-
-		// 如果存在fastJson的转换器,将其移除
-		converters.removeIf(httpMessageConverter -> httpMessageConverter instanceof FastJsonHttpMessageConverter);
-
-		// 需要重新加入jackson的转换器,该处的objectMapper已经在配置中注册了
-		MappingJSONHttpMessageConverter converter = new MappingJSONHttpMessageConverter(new JacksonConfig.JacksonObjectMapper());
-		converter.setDefaultCharset(StandardCharsets.UTF_8); // 字符编号
-		converters.add(0, converter);
-
-		// 添加String转换器
-		converters.add(utf8StringHttpMessageConverter());
-	}
-
-	/**
-	 * 自定义String转换器
-	 * @return HttpMessageConverters
-	 */
-	//@Bean
-	@Primary
-	public StringHttpMessageConverter utf8StringHttpMessageConverter() {
-
-		StringHttpMessageConverter converter = new StringHttpMessageConverter();
-
-		List<MediaType> mediaTypes = Lists.newArrayList();
-		mediaTypes.add(MediaType.TEXT_HTML);
-		mediaTypes.add(MediaType.TEXT_PLAIN);
-		mediaTypes.add(MediaType.TEXT_XML);
-		mediaTypes.add(MediaType.APPLICATION_XML);
-
-		converter.setSupportedMediaTypes(mediaTypes);
-		converter.setDefaultCharset(StandardCharsets.UTF_8);
-
-		return converter;
-	}
-
-	//@Bean
+	@Bean
 	public HttpMessageConverters fastJsonHttpMessageConverters() {
 		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
 		List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
@@ -99,3 +48,4 @@ public class WebMvcConfig implements WebMvcConfigurer {
 		return new HttpMessageConverters(converter);
 	}
 }
+

+ 3 - 3
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/jackson/JacksonConfig.java

@@ -51,9 +51,9 @@ import java.util.TimeZone;
 /**
  * JSON LocalDateTime 序列化、反序列化配置
  */
-@Configuration
-@ConditionalOnClass(ObjectMapper.class)
-@AutoConfigureBefore(JacksonAutoConfiguration.class)
+//@Configuration
+//@ConditionalOnClass(ObjectMapper.class)
+//@AutoConfigureBefore(JacksonAutoConfiguration.class)
 public class JacksonConfig {
 
     public static final String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; // 时间格式

+ 8 - 3
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/LocalFastJsonHttpMessageConverter.java

@@ -2,10 +2,12 @@ package com.yonge.cooleshow.portal.config;
 
 import com.alibaba.fastjson.serializer.JSONSerializer;
 import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
 import com.alibaba.fastjson.serializer.ValueFilter;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 import com.vdurmont.emoji.EmojiParser;
 import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpInputMessage;
 import org.springframework.http.HttpOutputMessage;
@@ -13,8 +15,10 @@ import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.http.converter.HttpMessageNotWritableException;
 
 import java.io.IOException;
+import java.io.OutputStream;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.util.Date;
 
 public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
 
@@ -28,12 +32,12 @@ public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConver
 	@Override
 	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
 
-		/*OutputStream out = outputMessage.getBody();
+		OutputStream out = outputMessage.getBody();
 		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
 		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
 		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
 		byte[] bytes = text.getBytes(getCharset());
-		out.write(bytes);*/
+		out.write(bytes);
 	}
 }
 
@@ -43,7 +47,7 @@ class EmojiSerializer implements ObjectSerializer{
 	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
 		serializer.write(EmojiParser.parseToUnicode(object.toString()));
 	}
-	
+
 }
 
 class EnumFilter implements ValueFilter {
@@ -67,3 +71,4 @@ class EnumFilter implements ValueFilter {
 		return value;
 	}
 }
+

+ 3 - 53
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/WebMvcConfig.java

@@ -1,23 +1,16 @@
 package com.yonge.cooleshow.portal.config;
 
-import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
-import com.google.common.collect.Lists;
 import com.yonge.cooleshow.common.config.EnumConverterFactory;
-import com.yonge.cooleshow.portal.config.jackson.JacksonConfig;
-import com.yonge.cooleshow.portal.config.jackson.MappingJSONHttpMessageConverter;
 import com.yonge.cooleshow.portal.interceptor.MDCInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -32,10 +25,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
 	 */
 	@Override
 	public void addFormatters(FormatterRegistry registry) {
-		// 枚举转换器
 		registry.addConverterFactory(new EnumConverterFactory());
-		// 字符串时间转换器
-		registry.addConverter(new JacksonConfig.CustomStringDateConverter());
 	}
 
 	@Override
@@ -53,48 +43,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
 //		registry.addInterceptor(operationLogInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
 	}
 
-	/**
-	 * @param converters List<HttpMessageConverter<?>>
-	 */
-	@Override
-	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
-		//WebMvcConfigurer.super.configureMessageConverters(converters);
-
-		// 如果存在fastJson的转换器,将其移除
-		converters.removeIf(httpMessageConverter -> httpMessageConverter instanceof FastJsonHttpMessageConverter);
-
-		// 需要重新加入jackson的转换器,该处的objectMapper已经在配置中注册了
-		MappingJSONHttpMessageConverter converter = new MappingJSONHttpMessageConverter(new JacksonConfig.JacksonObjectMapper());
-		converter.setDefaultCharset(StandardCharsets.UTF_8); // 字符编号
-		converters.add(0, converter);
-
-		// 添加String转换器
-		converters.add(utf8StringHttpMessageConverter());
-	}
-
-	/**
-	 * 自定义String转换器
-	 * @return HttpMessageConverters
-	 */
-	//@Bean
-	@Primary
-	public StringHttpMessageConverter utf8StringHttpMessageConverter() {
-
-		StringHttpMessageConverter converter = new StringHttpMessageConverter();
-
-		List<MediaType> mediaTypes = Lists.newArrayList();
-		mediaTypes.add(MediaType.TEXT_HTML);
-		mediaTypes.add(MediaType.TEXT_PLAIN);
-		mediaTypes.add(MediaType.TEXT_XML);
-		mediaTypes.add(MediaType.APPLICATION_XML);
-
-		converter.setSupportedMediaTypes(mediaTypes);
-		converter.setDefaultCharset(StandardCharsets.UTF_8);
-
-		return converter;
-	}
-
-	//@Bean
+	@Bean
 	public HttpMessageConverters fastJsonHttpMessageConverters() {
 		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
 		List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
@@ -103,3 +52,4 @@ public class WebMvcConfig implements WebMvcConfigurer {
 		return new HttpMessageConverters(converter);
 	}
 }
+

+ 3 - 3
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/config/jackson/JacksonConfig.java

@@ -51,9 +51,9 @@ import java.util.TimeZone;
 /**
  * JSON LocalDateTime 序列化、反序列化配置
  */
-@Configuration
-@ConditionalOnClass(ObjectMapper.class)
-@AutoConfigureBefore(JacksonAutoConfiguration.class)
+//@Configuration
+//@ConditionalOnClass(ObjectMapper.class)
+//@AutoConfigureBefore(JacksonAutoConfiguration.class)
 public class JacksonConfig {
 
     public static final String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; // 时间格式

+ 19 - 2
cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/LocalFastJsonHttpMessageConverter.java

@@ -1,8 +1,12 @@
 package com.yonge.cooleshow.task.config;
 
+import com.alibaba.fastjson.serializer.JSONSerializer;
+import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
 import com.alibaba.fastjson.serializer.ValueFilter;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 import com.yonge.toolset.base.enums.BaseEnum;
+import com.yonge.toolset.utils.json.JsonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpInputMessage;
 import org.springframework.http.HttpOutputMessage;
@@ -10,7 +14,10 @@ import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.http.converter.HttpMessageNotWritableException;
 
 import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.util.Date;
 
 public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
 
@@ -24,15 +31,24 @@ public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConver
 	@Override
 	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
 
-		/*OutputStream out = outputMessage.getBody();
+		OutputStream out = outputMessage.getBody();
 		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
 		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
 		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
 		byte[] bytes = text.getBytes(getCharset());
-		out.write(bytes);*/
+		out.write(bytes);
 	}
 }
 
+class EmojiSerializer implements ObjectSerializer{
+
+	@Override
+	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
+		//serializer.write(EmojiParser.parseToUnicode(object.toString()));
+	}
+
+}
+
 class EnumFilter implements ValueFilter {
 
 	public static EnumFilter instance = new EnumFilter();
@@ -54,3 +70,4 @@ class EnumFilter implements ValueFilter {
 		return value;
 	}
 }
+

+ 13 - 62
cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/WebMvcConfig.java

@@ -1,22 +1,16 @@
 package com.yonge.cooleshow.task.config;
 
-import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
-import com.google.common.collect.Lists;
-import com.yonge.cooleshow.common.config.EnumConverterFactory;
-import com.yonge.cooleshow.task.config.jackson.JacksonConfig;
-import com.yonge.cooleshow.task.config.jackson.MappingJSONHttpMessageConverter;
+import java.util.ArrayList;
+import java.util.List;
+
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
+import com.yonge.cooleshow.common.config.EnumConverterFactory;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {
@@ -26,60 +20,17 @@ public class WebMvcConfig implements WebMvcConfigurer {
 	 */
 	@Override
 	public void addFormatters(FormatterRegistry registry) {
-		// 枚举转换器
 		registry.addConverterFactory(new EnumConverterFactory());
-		// 字符串时间转换器
-		registry.addConverter(new JacksonConfig.CustomStringDateConverter());
 	}
 
-	/**
-	 * @param converters List<HttpMessageConverter<?>>
-	 */
-	@Override
-	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
-		//WebMvcConfigurer.super.configureMessageConverters(converters);
-
-		// 如果存在fastJson的转换器,将其移除
-		converters.removeIf(httpMessageConverter -> httpMessageConverter instanceof FastJsonHttpMessageConverter);
-
-		// 需要重新加入jackson的转换器,该处的objectMapper已经在配置中注册了
-		MappingJSONHttpMessageConverter converter = new MappingJSONHttpMessageConverter(new JacksonConfig.JacksonObjectMapper());
-		converter.setDefaultCharset(StandardCharsets.UTF_8); // 字符编号
-		converters.add(0, converter);
-
-		// 添加String转换器
-		converters.add(utf8StringHttpMessageConverter());
-	}
-
-	/**
-	 * 自定义String转换器
-	 * @return HttpMessageConverters
-	 */
-	//@Bean
-	@Primary
-	public StringHttpMessageConverter utf8StringHttpMessageConverter() {
-
-		StringHttpMessageConverter converter = new StringHttpMessageConverter();
-
-		List<MediaType> mediaTypes = Lists.newArrayList();
-		mediaTypes.add(MediaType.TEXT_HTML);
-		mediaTypes.add(MediaType.TEXT_PLAIN);
-		mediaTypes.add(MediaType.TEXT_XML);
-		mediaTypes.add(MediaType.APPLICATION_XML);
-
-		converter.setSupportedMediaTypes(mediaTypes);
-		converter.setDefaultCharset(StandardCharsets.UTF_8);
-
-		return converter;
-	}
-
-	//@Bean
-    public HttpMessageConverters fastJsonHttpMessageConverters(){
+	@Bean
+	public HttpMessageConverters fastJsonHttpMessageConverters(){
 		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
-        List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
-        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
-        converter.setSupportedMediaTypes(fastMediaTypes);
-        return new HttpMessageConverters(converter);
-    }
+		List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
+		fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+		converter.setSupportedMediaTypes(fastMediaTypes);
+		return new HttpMessageConverters(converter);
+	}
 
 }
+

+ 3 - 3
cooleshow-task/src/main/java/com/yonge/cooleshow/task/config/jackson/JacksonConfig.java

@@ -51,9 +51,9 @@ import java.util.TimeZone;
 /**
  * JSON LocalDateTime 序列化、反序列化配置
  */
-@Configuration
-@ConditionalOnClass(ObjectMapper.class)
-@AutoConfigureBefore(JacksonAutoConfiguration.class)
+//@Configuration
+//@ConditionalOnClass(ObjectMapper.class)
+//@AutoConfigureBefore(JacksonAutoConfiguration.class)
 public class JacksonConfig {
 
     public static final String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; // 时间格式

+ 0 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/config/LocalFastJsonHttpMessageConverter.java

@@ -1,13 +1,10 @@
 package com.yonge.cooleshow.biz.dal.config;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.serializer.JSONSerializer;
 import com.alibaba.fastjson.serializer.ObjectSerializer;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
 import com.alibaba.fastjson.serializer.ValueFilter;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
-import com.alibaba.fastjson.util.IOUtils;
 import com.vdurmont.emoji.EmojiParser;
 import com.yonge.toolset.base.enums.BaseEnum;
 import com.yonge.toolset.utils.json.JsonUtil;