Dubbo Jackson序列化使用说明

Jackson序列化提供了对基本数据类型和简单Bean的序列化的支持, 以及对类继承的支持。

已经经过测试的数据类型包括:

Boolean/boolean
Long/long
Integer/int
Double/double
Short/short
Float/float
Byte/byte
java.util.Date
org.joda.time.DateTime

以及由这些基本数据类型组成的数组和Bean, 如 int[], String[]等.

jackson序列化使用

<dubbo:protocol name="dubbo" port="20880" serialization="jackson" />

自定义ObjectMapper

默认情况下,Jackson序列化和反序列化时所使用的ObjectMapper定义如下:

  @Override
    public ObjectMapper getObjectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
//            objectMapper.disable(SerializationFeature.FLUSH_AFTER_WRITE_VALUE);
        objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
        objectMapper.setTimeZone(TimeZone.getDefault());
        return objectMapper;
}

如果需要自定义JacksonObjectMapperProvider, 开发者可以通过实现com.alibaba.dubbo.common.json.JacksonObjectMapperProvider接口进行自定义,并在/META-INF/dubbo/中添加文件 com.alibaba.dubbo.common.json.JacksonObjectMapperProvider,内容示例如下:

jackson=com.alibaba.dubbo.examples.jackson.jacksonprovider.CustomJacksonObjectMapperProvider

已知问题

  1. 不支持泛型对象的序列化, 如 List,Map类型的序列化和反序列化
时间: 2024-12-06 13:33:25

Dubbo Jackson序列化使用说明的相关文章

再谈序列化之rpc调用失败和jackson序列化时不允许Map中的key为null

最近遇到了两个序列化相关的问题,比较典型,备忘特此留笔. 1.rpc调用时未进行序列化而导致的rpc调用失败 使用dubbo框架在进行rpc调用的时候,出现了下面的问题,原因是因为接口参数中的NoSerialReqDto类没有实现Serializable接口,没有进行序列化导致的. Caused by: java.lang.IllegalStateException: Serialized class com.your.package.domain.NoSerialReqDto must imp

Jackson序列化和反序列化Json数据完整示例

Jackson序列化和反序列化Json数据 Web技术发展的今天,Json和XML已经成为了web数据的事实标准,然而这种格式化的数据手工解析又非常麻烦,软件工程界永远不缺少工具,每当有需求的时候就会出现各种类库,框架以及工具来解决这些基础的问题,Jackson就是这些工具中的一个,使用这个工具开发者完全可以从手工结束Json数据的重复劳动中解放出来.使用Jackson首先需要下载相应的类库,如下的Maven dependency列出了完整的POM dependency. 1 <dependen

spring mvc3中JACKSON序列化日期格式的问题 - 墙头草的Java - BlogJava

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

Jackson序列化和反序列化

1,下载Jackson工具包(jackson-core-2.2.3.jar  jackson-annotations-2.2.3.jar  jackson-databind-2.2.3.jar ) jackson-core-2.2.3.jar 核心包 http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.2.3/jackson-core-2.2.3.jar jackson-annotations-2.2.3

深入理解Spring Redis的使用 (七)、Spring Redis 使用 jackson序列化 以及 BaseDao代码

之前在介绍Spring Redis进行存储的时候,都是通过RedisTemplate中的defaultSerializer,即JdkSerializationRedisSerializer.通过Jdk的序列化比较简单,但是有时候线上调试的时候通过控制台查看,完全看不出来存储了什么东西.而且在空间占用和性能上,相比Jackson,完全没有优势. 有过两次线上出问题,定位的时候知道缓存有错,却不知道到底出在那个缓存的字段上,调试非常不方便.于是序列化统统换成了Jackson. 代码如下: impor

关于dubbo的一切:生态圈

dubbo ecosystem dubbo Dubbo是一个高性能.可扩展的分布式服务框架,基于RPC,支持多种协议调用.服务监控和治理,同时是去中心化的框架,对应用侵入性小. - 官方网站 - GitHub源码 - 官方文档 dubbox https://github.com/dangdangdotcom/dubbox 来自dangdang网,主要是实现了基于JBoss RestEasy的rest支持,升级了spring.zk.json等依赖库,并且一直在维护.目前已经release的版本到2

分布式的几件小事(三)dubbo的通信协议与序列化

1.dubbo的通信协议 ①dubbo协议 Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况. 特点 : dubbo缺省协议,使用的是基于netty+hessian的tbremoting交互. 连接个数:单连接. 连接方式:长连接. 传输协议:TCP. 传输方式:NIO异步传输. 使用范围:传入传出数据包较小,消费者数据比提供者多,单一消费者无法压满提供者,尽量不要用来传输超大数据. 使用场景:常规远程服务方法调用

用Jackson进行Json序列化时的常用注解

Jackson时spring boot默认使用的json格式化的包,它的几个常用注解: @JsonIgnore 用在属性上面,在序列化和反序列化时都自动忽略掉该属性 @JsonProperty("xxx") 用在属性上面,在序列化和反序列化时都将该属性识别为xxx @JsonPropertyOrder(Value={"pname1","pname2"}) 用在实体类上面,主要是反序列时改变属性的排列顺序,pname1和pname2是实体类中的两个

Dubbo详细介绍与安装使用过程

今天看到一篇不错的dubbo介绍教程,原文链接:http://blog.csdn.net/xlgen157387/article/details/51865289 1 Dubbo介绍 1.1 dubbox简介 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本. 此时,用于简化增删改查工作量的 数据访问框