我想根据我的 Java 项目中先前定义的模式文件自动创建类。 为此,我使用了 Avro Maven 插件。
问题是生成的类不是纯 POJO 对象 - 在我的数据模型中也有我不想要的 avro 引用(希望保持简单):
import org.apache.avro.Schema;
import org.apache.avro.Schema.Parser;
import org.apache.avro.data.RecordBuilder;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
import org.apache.avro.specific.AvroGenerated;
import org.apache.avro.specific.SpecificData;
import org.apache.avro.specific.SpecificDatumReader;
import org.apache.avro.specific.SpecificDatumWriter;
import org.apache.avro.specific.SpecificRecord;
import org.apache.avro.specific.SpecificRecordBase;
import org.apache.avro.specific.SpecificRecordBuilderBase;
有没有办法只生成 POJO 对象?序列化/反序列化过程是否需要 avro 引用?
最佳答案
如果没有 avro 内容,则无法使用 avro maven 插件或 avro-tools.jar 生成 POJO。
这就是这些工具的工作方式,当然这些导入对于正常的序列化/反序列化来说不是必需的,所以如果不需要它们 - 最好的方法是使用其他一些库/插件来生成 POJO。
关于java - 仅限 Apache avro 代码生成 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42788631/