文档章节

SpringBoot使用FastJson 替换 jackson

ol_O_O_lo
 ol_O_O_lo
发布于 2017/09/07 17:00
字数 270
阅读 184
收藏 0
点赞 0
评论 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
粉丝 0
博文 22
码字总数 7149
作品 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
zhys513/scm-springboot

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

zhys513
06/28
0
0
SpringBoot 入门实例

SpringBoot 是由 pivotal 提供的 Java 开发框架,伴随着 spring 4.0 版本一起发布,旨在简化 Spring 项目的初始化及开发过程,框架本身为开发过程提供了大量的默认配置,当然我们也可以通过简...

Aotian
05/29
0
0
SpringBoot返回json和xml

有些情况接口需要返回的是xml数据,在springboot中并不需要每次都转换一下数据格式,只需做一些微调整即可。 新建一个springboot项目,加入依赖jackson-dataformat-xml,pom文件代码如下: ...

dalaoyang
04/08
0
0
学习 Spring Boot 知识看这一篇就够了

从2016年因为工作原因开始研究 Spring Boot ,先后写了很多关于 Spring Boot 的文章,发表在技术社区、我的博客和我的公号内。粗略的统计了一下总共的文章加起来大概有六十多篇了,其中一部分...

ityouknow
05/28
0
0
Spring Boot入门资料整理

Spring Boot 初识 SpringBoot前世今生 本文主要讲述spring boot的由来,即其它诞生的背景,初衷,现状,及对未来的展望。 Spring Boot参考指南中文版--Chapter1.Spring Boot中文文档 本节提供...

小致dad
2017/11/07
0
0
Spring系列整合Swagger

SpringMvc整合Swagger(spring版本在4.1.8以上,深深的痛) 1.先搭建好springmvc的环境 2.修改pom文件 3.也需要引入jackson的包 4.定义一个swagger的配置类 5.修改springmvc的配置文件,放行一...

z七夜
07/03
0
0
springBoot 搭建web项目(前后端分离,附项目源代码地址)

概述 该项目包含springBoot-example-ui 和 springBoot-example,分别为前端与后端,前后端分离,利用ajax交互。 前端html 技术: + + + + 该项目git地址:https://github.com/jiangcaijun/sp...

开源小菜鸟2333
2017/11/01
0
0
springboot 是如何帮我们省去web.xml配置的

概述 最开始使用原生的springmvc时,总是免不了有如下xml配置 但是,切换到springboot之后,web.xml之类的繁琐的配置基本上都不见了。出于好奇研究了下springboot究竟帮我们做了什么,我们可...

端吉
06/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部