当前位置 : 主页 > 编程语言 > java >

spring-boot-starter-fastjson 的使用

来源:互联网 收集:自由互联 发布时间:2021-06-28
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
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.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();
        }
    }

}
网友评论