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();
}
}
}
