序列化 jprotobuf
2024-09-03 00:45:31
jprotobuf工作原理如下:
- 扫描类上的注解的信息,进行分析(与protobuf读取proto文件进行分析过程相似)
- 根据注解分析的结果,动态生成java代码进行protobuf序列化与反序列化的功能实现
- 使用JDK6及以上的 code compile API进行编译后加载到classloader
github地址:https://github.com/jhunters/jprotobuf
jprotobuf 序列化字节数小,适合网络传输
序列化字段设置:
public class Student{ private static final long serialVersionUID = -2140242550063332020L; @Protobuf(fieldType = FieldType.INT32, order = 1, required = true)
private int age; @Protobuf(fieldType = FieldType.STRING, order = 2, required = false)
private String name; public static int gender = 1; public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public String toString() {
return "Student{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
实现序列化:
public class JprotobufDemo { public static void main(String[] args) { Codec<Student> simpleTypeCodec = ProtobufProxy
.create(Student.class); Student stu = new Student();
stu.setAge(18);
stu.setName("mic");
try {
// 序列化
byte[] bb = simpleTypeCodec.encode(stu);
// 反序列化
Student newStt = simpleTypeCodec.decode(bb);
System.out.println("反序列化结果:"+newStt);
} catch (IOException e) {
e.printStackTrace();
}
}
}
最新文章
- mybatis2
- java readLine()
- iOS小技巧
- PSR-0的规范。
- Poj 1050 分类: Translation Mode 2014-04-04 09:31 103人阅读 评论(0) 收藏
- android -- 蓝牙 bluetooth (四)OPP文件传输
- 【.NET】电话号码打星号(隐藏部分)
- Java Socket编程基础(1)
- java命名
- 在Linux环境如何在不解压情况下搜索多个zip包中匹配的字符串内容
- Ansible之Playbook详解、案例
- Linux文件同步
- OPCServer:使用KEPServer
- oracle 查询 磁盘使用率
- sql backup
- 微信小程序获取当前位置
- Azkaban学习之路 (一)Azkaban的基础介绍
- JavaScript 计时
- python selenium expected_conditions使用实例
- 3. 哈工大LTP解析
热门文章
- TypeSafe Config使用
- php mcrypt加密实例
- php获取accesstoken和二维码的实现方法
- margin在块元素、内联元素中的区别 padding
- ModuleNotFoundError: No module named &#39;numpy.core._multiarray_umath&#39; ImportError: numpy.core.multiarray failed to import
- MYSQL进阶学习笔记十六:MySQL 监控!(视频序号:进阶_35)
- Grunt 自动编译 Less 文件配置
- kali本機安裝openvas的血淚史復盤
- 【USACO】Optimal Milking
- SpringMVC数据绑定一(基本类型、数组和对象(简单对象、层级对象、多参数对象))