XSON:高性能java序列化框架

XSON是一个Java对象的序列化和反序列化框架。它支持将Java对象序列化为字节数组,并将其从字节数组反序列化为Java对象。

  • 网址:http : //xson.org

  • 项目地址:https://github.com/xsonorg/xson

新版本功能

  1. 新的缓冲包,这个包中的相关类,在分配,使用,回收管理的过程中提供了byte []的分配; 进一步提供序列化速度并减少Full GC。

  2. 提供具有偏移内容的API支持。

  3. 提供XCO对象序列化和反序列化支持。

  4. 提供对扩展配置文件的支持。

教程

基本使用

一个。添加依赖关系

<依赖性>

湾 序列化

User user = new User();

C。反序列化

// byte [] data

天。带偏移量的序列化和反序列化

int x = 6;

配置文件

我们来看看这个xson.properties文件配置示例,然后深入分析这些组件的含义:

#支持XCO

配置说明

Xco = true 打开对XCO对象的支持,默认不打开;

ByteArray.number ByteArrayManager管理字节[] number,默认为100;

ByteArray.capacity ByteArrayManager管理每个字节[]的容量,默认为512;

Java.util.ArrayList = 0用户类名称自定义映射; 例如:当XSON序列化User对象时,序列化的类信息描述区域的结果将记录User类的类名,如org.xson。用户,如果我们org.xson.User = user通过这个配置,user只会记录在类信息描述区域中。这里,可以减少串行数据的音量。

注意:配置文件使用固定名称xson.properties。使用时,请将其放在classpath根路径下。

自定义Serializer

这是一个用户定义的串行器和解串器:

public class CustomerSerializer实现XsonWriter {

2.添加用户定义的序列化器和解串器

XsonSupport.addCustomSerializer(User.class,new CustomerSerializer(),new CustomerDeserializer());

注意:串行器和解串器必须成对设置。

设计

类图设计

  1. XSON:用户输入类,提供序列化和反序列化方法

  2. WriterModel:序列化写入模型类

  3. XsonWriter:序列化接口

  4. ArraySerializer:对象数组序列化类

  5. CollectionSerializer:Collection对象序列化类

  6. 枚举对象序列化类

  7. MapSerializer:Map对象序列化类

  8. 其他Serializer:其他类型的对象序列化类,看源码

  9. ReaderModel:反序列化阅读模型类

  10. XsonReader:反序列化接口

  11. CurrencyDeserializer:货币对象反转类

  12. DateUtilDeserializer:时间对象反转类

  13. LocaleDeserializer:区域对象反转类

  14. LongDeserializer:长包装对象反转类

  15. 其他Deserializer:其他类型的对象反转类,请参见源代码

  16. XsonConst:常量类,持有所有的序列化和反序列化类实例

byte []管理

  1. 浅绿色:byte []ByteArrayManager课堂管理,持有多个 byte []内容,同样如此;ByteArrayManager在序列化过程中提供byte []应用和回收管理。

  2. 深绿色:byte []在序列化期间暂时创建,不受ByteArrayManagerGC处理。

  3. 浅蓝色:ByteArrayItem上课; 基于byte []包类,记录中的内容byte []capacitylimit所以对使用的属性;

  4. 黄色:XSONByteArray上课; 保持一个或多个ByteArrayItem内部的类,通过该原语类型,字符串,字节数组是序列化到byte []所述的ByteArrayItem类中;

ASM技术

对于Java Bean对象处理,XSON框架使用ASM技术为每个bean对象动态生成相应的Serializer和Deserializer,用于序列化和反序列化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值