我正在进入一个需要一些基础设施的网络项目,其中我真的不太了解,所以我在这里请求你的圣人建议:)。
该项目使用spring作为MVC,并与其他项目连接,称为跟踪器,由套接字构成。
关键是我需要通过web创建和实体对象称为任务,并且该实体应该发送到跟踪器,在那里将被处理,一个第一个想法是发送序列化的实体,但看起来不是很好,因为在这个实体内部还有很多其他跟踪器不需要的实体。此外,跟踪器应该发回一些有关任务实现的反馈。
我已经读过,使用实体任务所需的数据制作一个JSON文件并将其发送到跟踪器通常是一个好主意,但我只是想确定并知道是否还有其他可能性。
提前致谢。
答案 0 :(得分:2)
有很多可能性:例如JSON和XML,但序列化是最简单的。您可以创建一个新的,简单的Java bean,而不是创建JSON文件或使用现有实体,只包含您真正需要的信息并发送它。
当然,我假设“traker”应用程序将相应开发。
答案 1 :(得分:2)
有很多可能性。我认为JSON是一个比XML更好的选择。
对于JSON,您可以使用Google Gson(https://code.google.com/p/google-gson/)是一个非常有用且简单的库转换JSON-JAVA,反之亦然。
Java Objects序列化是另一种可能性。要通过套接字发送java对象,您可以这样做:
URL urlServlet = new URL("http://...");
URLConnection connection = urlServlet.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestProperty("Content-Length",
"512");
connection.setRequestProperty("Content-Type",
"application/x-java-serialized-object");
ObjectOutputStream output = new ObjectOutputStream(connection.getOutputStream());
output.writeObject(getOrdenesDTO());
答案 2 :(得分:0)
在我看来,使用JSON而不是序列化更容易实现,但是每个字段成员都必须转换为字符串并返回。
您可以使用transient关键字标记您不想序列化的字段。
其他选项当然是更难编写自己的套接字协议。