gistfile1.txt package com.vdongchina.weichen.plugin.distribution.configure;import com.alibaba.fastjson.serializer.SerializerFeature;import com.alibaba.fastjson.support.config.FastJsonConfig;import com.ruijc.fastjson.FastJsonAutoConfiguratio
package com.vdongchina.weichen.plugin.distribution.configure; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.support.config.FastJsonConfig; import com.ruijc.fastjson.FastJsonAutoConfiguration; import com.ruijc.fastjson.FastJsonProperties; import com.ruijc.fastjson.annotation.MoreSerializeField; import com.ruijc.fastjson.converter.FastJsonHttpMessageConverter; import com.ruijc.util.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.web.HttpMessageConverters; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.ArrayList; import java.util.List; import static com.alibaba.fastjson.serializer.SerializerFeature.DisableCircularReferenceDetect; /* * Created by yaomaoqiao * on 2017/11/27. * description: 自定义配置 ,排除jackson的启动配置 */ @Configuration public class DistributionFastJson extends FastJsonAutoConfiguration { @ConditionalOnWebApplication @EnableConfigurationProperties({FastJsonProperties.class}) protected static class FastJson2HttpMessageConverterConfiguration { @Autowired private FastJsonProperties properties; protected FastJson2HttpMessageConverterConfiguration() { super(); } @Bean @ConditionalOnMissingBean({com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter.class}) public HttpMessageConverters customConverters(com.ruijc.fastjson.converter.FastJsonHttpMessageConverter var1) { ArrayList var2 = new ArrayList(); if (var1 == null) { var1 = (com.ruijc.fastjson.converter.FastJsonHttpMessageConverter) BeanUtils.instantiate(this.properties.getConverter()); } FastJsonConfig var3 = new FastJsonConfig(); List var4; if (!CollectionUtils.isBlank(var4 = this.properties.getFeatures())) { int size = var4.size() + 1; SerializerFeature[] var5 = new SerializerFeature[size]; var5[0] = SerializerFeature.DisableCircularReferenceDetect; var3.setSerializerFeatures((SerializerFeature[]) var4.toArray(var5)); var3.setSerializerFeatures(); } else { if (var3.getSerializerFeatures().length == 0) var3.setSerializerFeatures(SerializerFarReferenceDetect); } var3.setDateFormat("yyyy-MM-dd HH:mm:ss"); var1.setFastJsonConfig(var3); var2.add(var1); return new HttpMessageConverters(true, var2); } @Bean @ConditionalOnMissingBean({com.ruijc.fastjson.converter.FastJsonHttpMessageConverter.class}) public com.ruijc.fastjson.converter.FastJsonHttpMessageConverter converter() { return new com.ruijc.fastjson.converter.FastJsonHttpMessageConverter(); } } }