要使用protostuff需要下载相关依赖jar,我使用的是maven
<!-- 第三方序列化protostuff maven依赖 --> <dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.0.8</version> </dependency> <dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-runtime</artifactId> <version>1.0.8</version> </dependency>
然后就可以使用了
public class SerializableHelper<T> { private RuntimeSchema<T> schema; public SerializableHelper(Class<T> typeClass){ schema = RuntimeSchema.createFrom(typeClass); } /** * 序列化 * 对象转二进制 * @param t * @return */ public byte[] serialize(T t){ byte[] bytes = ProtobufIOUtil.toByteArray(t,schema, LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE)); return bytes; } /** * 反序列化 * 二进制转对象 * @param bytes * @return */ public T deserialize(byte[] bytes){ T t = schema.newMessage(); ProtobufIOUtil.mergeFrom(bytes,t,schema); return t; } }
使用时先创建 SerializableHelper对象,例如:
private SerializableHelper<Seckill> serializableHelper = new SerializableHelper<Seckill>(Seckill.class);然后就可以调用里面的静态方法