我有 2 个 Maven 应用程序应该通过服务器套接字和套接字进行通信。如果可能,我想将数据作为 Java 对象发送,但为此我需要这两个项目都包含对象的类。
如果可能的话,我不想使用该类创建第三个 maven 项目并将其作为依赖项添加到服务器和客户端项目中。有没有其他方法可以做到这一点?
感谢您的回答!
我有 2 个 Maven 应用程序应该通过服务器套接字和套接字进行通信。如果可能,我想将数据作为 Java 对象发送,但为此我需要这两个项目都包含对象的类。
如果可能的话,我不想使用该类创建第三个 maven 项目并将其作为依赖项添加到服务器和客户端项目中。有没有其他方法可以做到这一点?
感谢您的回答!
您可以使您的服务器项目成为您的客户端项目的子项目,这意味着您的服务器可以访问客户端需要的所有类,以及一些额外的。
或者,您可以创建一个包含共享类的 JAR,然后使用mvn install
(此处的文档:https ://maven.apache.org/guides/mini/guide-3rd -party-jars-local.html )
对于数据的实际传输,您可以使用Serializable
接口序列化您的对象,但是这种方法存在许多问题:
相反,您可以使用:
toDataString()
和fromDataString()
方法。这仅适用于小类,因为 Unicode、转义字符、编码等存在许多问题,大多数库都对你隐藏。这比其他方法风险更大。一般来说,除非您有充分的理由不这样做,否则我会推荐 JSON。我个人使用杰克逊,这里是一个教程的链接:http: //tutorials.jenkov.com/java-json/jackson-objectmapper.html