MessagePack Java 0.6.X 使用一个消息打包(message-packable)
使用注解? 本代码可以在?https://github.com/cwiki-us-demo/messagepack-6-demo-java/blob/master/src/test/java/com/insight/demo/msgpack/MessagePack6Object.java?中下载到本地后进行编译测试。 package com.insight.demo.msgpack; import org.junit.Test; import org.msgpack.MessagePack; import org.msgpack.annotation.Message; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.UUID; import static org.junit.Assert.assertEquals; /** * MessagePack6Objects * * @author yhu */ public class MessagePack6Object { final Logger logger = LoggerFactory.getLogger(MessagePack6Object.class); /** * MessageData Message Object */ @Message // Annotation public static class MessageData { // public fields are serialized. public String uuid; public String name; public double version; } /** * Test MessagePack6Objects */ @Test public void testMessagePack6Objects() { logger.debug("MessagePack6Objects for Objects"); String uuid = UUID.randomUUID().toString(); // INIT OBJ MessageData src = new MessageData(); src.uuid = uuid; src.name = "MessagePack6"; src.version = 0.6; try { MessagePack msgPack = new MessagePack(); // Serialization logger.debug("------ Serialization ------"); byte[] bytes = msgPack.write(src); logger.debug("Bytes Array Length: [{}]",bytes.length); // Deserialization logger.debug("------ Deserialization ------"); MessageData dst = msgPack.read(bytes,MessageData.class); logger.debug("Check Object for UUID: [{}]",dst.uuid); assertEquals(uuid,dst.uuid); } catch (Exception ex) { logger.error("MessagePack Serialization And Deserialization error",ex); } } } ? 如果你希望按照顺序序列化多个对象的话,你可以使用?? 这是因为? 为了使用? 本代码可以?https://github.com/cwiki-us-demo/messagepack-6-demo-java/blob/master/src/test/java/com/insight/demo/msgpack/MessagePack6Objects.java?中查看。 ? package com.insight.demo.msgpack; import org.junit.Test; import org.msgpack.MessagePack; import org.msgpack.annotation.Message; import org.msgpack.packer.Packer; import org.msgpack.unpacker.Unpacker; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.util.UUID; import static org.junit.Assert.assertEquals; /** * MessagePack6Objects * * @author yhu */ public class MessagePack6Objects { final Logger logger = LoggerFactory.getLogger(MessagePack6Objects.class); /** * MessageData Message Objects */ @Message // Annotation public static class MessageData { // public fields are serialized. public String uuid; public String name; public double version; } /** * Test MessagePack6Objects */ @Test public void testMessagePack6Objects() { logger.debug("MessagePack6Objects for Objects"); String uuid = UUID.randomUUID().toString(); // INIT OBJ MessageData src1 = new MessageData(); src1.uuid = uuid; src1.name = "MessagePack6-src1"; src1.version = 0.6; MessageData src2 = new MessageData(); src2.uuid = uuid; src2.name = "MessagePack6-src2"; src2.version = 10.6; MessageData src3 = new MessageData(); src3.uuid = uuid; src3.name = "MessagePack6-src3"; src3.version = 1.6; try { MessagePack msgPack = new MessagePack(); // Serialization logger.debug("------ Serialization ------"); ByteArrayOutputStream out = new ByteArrayOutputStream(); Packer packer = msgPack.createPacker(out); packer.write(src1); packer.write(src2); packer.write(src3); byte[] bytes = out.toByteArray(); logger.debug("Bytes Array Length: [{}]",bytes.length); // Deserialization logger.debug("------ Deserialization ------"); ByteArrayInputStream in = new ByteArrayInputStream(bytes); Unpacker unpacker = msgPack.createUnpacker(in); MessageData dst1 = unpacker.read(MessageData.class); MessageData dst2 = unpacker.read(MessageData.class); MessageData dst3 = unpacker.read(MessageData.class); logger.debug("Check Object for UUID: [{}]",dst1.uuid); assertEquals(uuid,dst1.uuid); } catch (Exception ex) { logger.error("MessagePack Serialization And Deserialization error",ex); } } } ?
?
https://www.cwiki.us/display/Serialization/QuickStart+For+MessagePack+Java+0.6.X (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |