大家都知道protobuf好用,可是在网上找到的网状的整合protobuf的文章都是千篇一律,自己编写原型文件然后使用工具转java文件用起来复杂麻烦,经过不懈努力终于找到了一个简单的方法希望大家喜欢。
谷歌原生的protobuffer使用起来相当麻烦,首先要写.proto文件,然后编译.proto文件,生成对应的. java文件,鄙人试了一次,发现真的很麻烦。而protostuff的官方网站(http://www.protostuff.io/documentation/runtime-schema/),对于智商比较低的小编来说也略显生涩,于是鄙人就根据项目中用到的protostuff,撰写此文,以方便自己和他人加深印象和学习。
<强> 1。实战强>
<强> 1. maven依赖:强>
& lt; dependency> & lt; groupId> io.protostuff & lt; artifactId> protostuff-core & lt; version> 1.4.0 & lt;/dependency> & lt; dependency> & lt; groupId> io.protostuff & lt; artifactId> protostuff-runtime & lt; version> 1.4.0 & lt;/dependency>
<强> 2. protobufutil工具类:ProtoBufUtil.java 强>
进口io.protostuff.LinkedBuffer; 进口io.protostuff.ProtobufIOUtil; 进口io.protostuff.ProtostuffIOUtil; 进口io.protostuff.Schema; 进口io.protostuff.runtime.RuntimeSchema;/* * *由zhangzh> 进口io.protostuff.Tag;/* * *由zhangzh schoolName=" + schoolName \“+ +” '} '; } }
<强> 3.测试类ProtoBufUtilTest.java:,, 强>
进口java.util.Arrays;/* * *由zhangzh 2017/2/20。 */公开课ProtoBufUtilTest { 公共静态void main (String [] args) { 学生学生=new (); student.setName(“兰斯”); student.setAge (28); student.setStudentNo (“2011070122”); student.setSchoolName (“BJUT”); byte [] serializerResult=ProtoBufUtil.serializer(学生); system . out。println(“序列化器结果:”+ Arrays.toString (serializerResult)); 学生deSerializerResult=ProtoBufUtil.deserializer (serializerResult Student.class); system . out。println (“deSerializerResult:”+ deSerializerResult.toString ()); } }
<>强4。输出结果:,,强>
序列化器结果:[10,108,97,110,99,101,18日,10日,50岁,48岁,49岁,49岁,48岁,55岁,48岁,49岁,50岁,50岁,24岁,28岁,34岁,4,66,74,85,84]
引用>
deSerializerResult:学生{name=袄妓埂?studentNo=' 2011070122 '=28岁schoolName=' BJUT}
<强>总结强>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
Protostuff序列化和反序列化的使用说明