java序列化工具 protoStuff的使用

本文介绍了protoStuff,一个兼容Protocol Buffers(PB)的Java序列化工具。相较于kryo的前后兼容问题,protoStuff提供了一种无需编写PB文件的解决方案,使得序列化过程更为简便。文章详细讲解了protoStuff的依赖引入和使用方法,特别指出在处理Map和List等类型时的注意事项,以及如何通过@Tag注解来规范序列化字段顺序。
摘要由CSDN通过智能技术生成

1.前言

在互联网快速发展的今天,互联网架构也在不断的升级。而数据的传输和存贮是互联网系统中不可或缺的一部分。举个简单的例子,目前微服务已经很普及了,就拿dubbo来说,不管用jdk自带的序列化,还是dubbo的序列化,效果都不尽然人意。市面上高性能的序列化工具也有例如kryo,pb。但是kryo虽然序列化出来的体积小,传输快,但是不支持前后兼容。(例如序列化前和序列化后,对象的字段必须是一样的,不能多也不能少,否则就会报错),pb整体都不错,体积小,传输快,前后兼容。
但是要自己编写pb文件,使用门槛高。而protoStuff和pb很相似,可以兼容PB,是java的序列化工具类。不需要编写pb文件,开箱即用。

2.依赖

<dependency>
                <groupId>io.protostuff</groupId>
                <artifactId>protostuff-core</artifactId>
               <version>1.7.2</version>            
               </dependency>
            <dependency>
                <groupId>io.protostuff</groupId>
                <artifactId>protostuff-runtime</artifactId>
                <version>1.7.2</version>
            </dependency>

3.用法

protoStuff默认只自定义的pojo,如果需要序列化jdk的Map,List等类,需要使用包装类。

package com.ly;

import com.ly.entity.Good;
import io.protostuff.LinkedBuffer;
import io.protostuff.ProtostuffIOUtil;
import io.protostuff.Schema;
import io.protostuff.runtime.RuntimeSchema;

import java.io.FileInputStream;
import java.io.IOException;
import java.
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值