日韩精品欧美激情国产一区_中文无码精品一区二区三区在线_岛国毛片AV在线无码不卡_亞洲歐美日韓精品在線_使劲操好爽好粗视频在线播放_日韩一区欧美二区_八戒八戒网影院在线观看神马_亚洲怡红院在线色网_av无码不卡亚洲电影_国产麻豆媒体MDX

SpringBoot使用fastJson代替JackSon

時(shí)間:2022-09-08 09:46:27 類型:JAVA
字號:    

  方法一:最安全做法使用bean替代默認(rèn)轉(zhuǎn)換器方法

寫法一

@Configuration
public class MyConfiguration {
    @Bean
    public HttpMessageConverters customConverters() {
        List<HttpMessageConverters> converters = new ArrayList<>();
        // 1、需要先定義一個(gè)convert轉(zhuǎn)換消息的對象;
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        // 2、添加fastjson的配置信息,比如 是否要格式化返回json數(shù)據(jù)
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        // 3、在convert中添加配置信息.
        fastConverter.setFastJsonConfig(fastJsonConfig);
        // 4、將convert添加到converters當(dāng)中.
        converters.add(fastConverter);
        return new HttpMessageConverters(true, converters);
    }

}

  //寫法二

@Configuration
public class FastJsonHttpMessageConfig {
	@Bean
	public HttpMessageConverters fastJsonHttpMessageConverters() {
		FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

		FastJsonConfig fastJsonConfig = new FastJsonConfig();
		fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,
				SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteNullStringAsEmpty,
				SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullBooleanAsFalse);

		fastJsonConfig.setFeatures(Feature.OrderedField);
		List<MediaType> fastMedisTypes = new ArrayList<>();
		fastMedisTypes.add(MediaType.APPLICATION_JSON_UTF8);
		fastConverter.setSupportedMediaTypes(fastMedisTypes);

		fastConverter.setFastJsonConfig(fastJsonConfig);
		HttpMessageConverter<?> converter = fastConverter;
		return new HttpMessageConverters(converter);
	}
}

  方法二

  第三種實(shí)現(xiàn)父類,缺點(diǎn)很明顯,完全接管的springmvc,默認(rèn)配置全部失效,需要重新自己配置

@Configuration
public class SpringMvcConfigure extends WebMvcConfigurationSupport{

    /**
     * 配置消息轉(zhuǎn)換器
     * @param converters
     */
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
        //自定義配置...
        FastJsonConfig config = new FastJsonConfig();
        config.setSerializerFeatures(SerializerFeature.QuoteFieldNames,
                SerializerFeature.WriteEnumUsingToString,
                /*SerializerFeature.WriteMapNullValue,*/
                SerializerFeature.WriteDateUseDateFormat,
                SerializerFeature.DisableCircularReferenceDetect);
        fastJsonHttpMessageConverter.setFastJsonConfig(config);
        converters.add(fastJsonHttpMessageConverter);
        supper.configureMessageConverters(converters);
    }
}


<