文档章节

SpringBoot使用FastJson 替换 jackson

ol_O_O_lo
 ol_O_O_lo
发布于 2017/09/07 17:00
字数 270
阅读 388
收藏 0

fastJson使用比较多。用起来顺手。所以想把jackson替换掉。

  1. 引入最新fastjson。maven引入不用多说啦。
  2. 新建类,继承自WebMvcConfigurerAdapter,重写extendMessageConverters方法。

import com.alibaba.fastjson.serializer.SerializerFeature
import com.alibaba.fastjson.support.config.FastJsonConfig
import org.springframework.context.annotation.Configuration
import org.springframework.http.converter.HttpMessageConverter
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter
import org.springframework.boot.SpringBootConfiguration
import org.springframework.http.MediaType
import org.springframework.web.servlet.config.annotation.EnableWebMvc
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter

@SpringBootConfiguration
@EnableWebMvc
open class WebMvcConfigFastJson : WebMvcConfigurerAdapter(){
    /**
     *  这里是kotlin的语法。java基本一样。
     */
    override fun extendMessageConverters(converters: MutableList<HttpMessageConverter<*>>) {
        super.extendMessageConverters(converters)
        //这里把springBoot依赖的jackson去掉。
        //如果没有其他包依赖jackson,也可以直接pom里把jackson去掉
        converters.removeIf({ httpMessageConverter -> httpMessageConverter is MappingJackson2HttpMessageConverter })

        val converter:FastJsonHttpMessageConverter  = FastJsonHttpMessageConverter()
        var config:FastJsonConfig =  FastJsonConfig()
        config.dateFormat = "yyyy-MM-dd HH:mm:ss"
        config.setSerializerFeatures(
                SerializerFeature.BrowserSecure
                ,SerializerFeature.WriteBigDecimalAsPlain
                ,SerializerFeature.WriteEnumUsingToString
                ,SerializerFeature.WriteDateUseDateFormat)
        //处理中文乱码问题
        var fastMediaTypes:ArrayList<MediaType> = ArrayList<MediaType>()
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8)
        converter.setSupportedMediaTypes(fastMediaTypes)
        converter.setFastJsonConfig(config)
        converters.add(converter)
    }
}

这里是pom.xml去掉jackson

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </exclusion>
    </exclusions>
</dependency>

然后就可以开心的使用的fastjson了

参阅:

  1. Spring Boot使用Gson替换Jackson【http://blog.gelu.me/2017/spring-boot-uses-gson-to-replace-jackson/】
  2. SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)【http://blog.csdn.net/fw0124/article/details/48280083】
  3. spring boot(2)-@SpringBootApplication详解【http://blog.csdn.net/wangb_java/article/details/70943500?utm_source=itdadao&utm_medium=referral】

© 著作权归作者所有

共有 人打赏支持
ol_O_O_lo
粉丝 3
博文 30
码字总数 11067
作品 0
杭州
高级程序员
私信 提问
spring(一) spring-json全局序列化

---layout: blogistop: truetitle: "spring-json全局序列化"date: 2018-08-07category: springtags: spring --- 场景介绍 后台传送数据给前端,一般使用json ,多的不说,看个例子: 如果使用...

开心的哈士奇
10/17
0
0
恒宇少年/spring-boot-chapter

简书整套文档以及源码解析 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Cloud 核心技术 对Spring Cloud核心技术全面讲解 003 Quer...

恒宇少年
04/19
0
0
SpringBoot,返回JSON,Long前端精准度丢失,Jackson自定义序列化规则

已经很久没写过springboot的相关博客了,前面一段时间一直在写clojure,导致基本很少关注springboot的一些情况,刚好最近在写一些小玩意,期间,遇到一些问题,然后整理了一下,避免其他小伙伴跟我遇...

贺小五
04/15
0
0
自定义jackson解析时间格式yyy-MM-dd HH:mm:ss

1、问题排查 出现的场景: 服务端通过springmvc写了一个对外的接口,返回一个json字符串,其中该json带有日期,格式为yyyy-MM-dd HH:mm:ss 客户端通过feign调用该http接口,指定返回值为一个...

落叶清风
08/08
0
0
zhys513/scm-springboot

scm-springboot 基于spring boot的统一注解缓存,支持mencached、redis、ehcache的缓存无缝切换。支持单个缓存设置过期时间,灵活的key设置规则,采用fastjson序列化与反序列化,以json串存于...

zhys513
06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spark性能优化之道

Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势 本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partition...

GordonNemo
28分钟前
2
0
大数据驱动业务决策,CDN实时日志重磅上线

摘要: 阿里云CDN上线了实时日志功能,打通日志服务(SLS)的能力,将CDN采集的实时日志,在小于60秒的时间内投递至日志服务,进行实时、交互式分析和报表呈现。通过CDN日志的实时分析,可以快...

阿里云官方博客
34分钟前
3
0
springCloud学习笔记系列(3)-服务容错保护:Spring Cloud Feign

Feign包含了Ribbon和Hystrix,这个在实战中才慢慢体会到它的意义,所谓的包含并不是Feign的jar包包含有Ribbon和Hystrix的jar包这种物理上的包含,而是Feign的功能包含了其他两者的功能这种逻...

快乐的小火柴
35分钟前
1
0
各种数据库数据类型差异

文本 整数 浮点数 decimal Hive数据库 create table default.foo ( a DECIMAL, -- Defaults to decimal(10,0) b DECIMAL(20), -- Defaults to decimal(20,0) c DECIMAL(9, 7), d DE......

了凡川
39分钟前
4
0
springboot中filter的用法

一、在spring的应用中我们存在两种过滤的用法,一种是拦截器、另外一种当然是过滤器。我们这里介绍过滤器在springboot的用法,在springmvc中的用法基本上一样,只是配置上面有点区别。 二、f...

xiaomin0322
58分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部