文档章节

SpringBoot使用FastJson 替换 jackson

ol_O_O_lo
 ol_O_O_lo
发布于 2017/09/07 17:00
字数 270
阅读 505
收藏 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
博文 33
码字总数 12135
作品 0
杭州
高级程序员
私信 提问
spring(一) spring-json全局序列化

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

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

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

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

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

贺小五
2018/04/15
0
0
zhys513/scm-springboot

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

zhys513
2018/06/28
0
0
自定义jackson解析时间格式yyy-MM-dd HH:mm:ss

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

落叶清风
2018/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
0
0
RabbitMQ学习(2)

1. 生产者客户端 void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body) 1. 在生产者客户端发送消息时,首先......

江左煤郎
昨天
1
0
day23:curl判断网站状态码|打包压缩家目录小于5k文件|

1、写一个shell 脚本,通过curl -l 返回的状态码来判断访问的网站是否正确(状态码为 200 则正常); 首先如何过滤出来 状态码了; curl -I http://www.yuanhh.com/index.php 2>/dev/null|head...

芬野de博客
昨天
1
0
从 for of 聊到 Generator

你能学到什么 对 for of 更深入的理解 iterator 到底是何方神圣? 数组也是对象,为什么不能用 for of 来遍历对象呢? 如何实现对象的 for of? Generator 又是何方神圣? Generator 有什么用呢...

Jack088
昨天
3
0
怎么判断go-sql-driver 安装成功

.下载安装   执行下面两个命令:     下载:go get github.com/Go-SQL-Driver/MySQL     安装:go install github.com/Go-SQL-Driver/MySQL   怎么判断go-sql-driver 安装成功 ...

dragon_tech
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部