繁体   English   中英

我们可以在春季批处理时在运行时设置读取器,写入器,处理器类型吗

[英]Can we set reader, writer, processor types at runtime in spring batch

我正在使用jsonschema2pojo-maven-plugin v0.4.7在运行时从JSON模式生成POJO类,我希望我的读者应该是动态生成的pojo类的类型。 例如,有一个employee模式,它将在运行时作为Employee.java转换为pojo类。这个pojo名称是我想将我的阅读器的类型设置为ItemReader <'Employee>。 有什么办法可以在春季批处理中在运行时设置读写器类型?

提前致谢。

否。如果您确实在运行时生成了这些类,则无法在编译时引用它们(使用ItemReader<Employee> ),因为它们不存在。

但是,我怀疑您是否需要在运行时生成类。 也许您可以向我们显示更多代码,以便我们可以看到您在做什么。 但是到目前为止,答案是否定的。

@Thomas:感谢您的回答。 从模式,我知道将会在运行时生成的pojo的类名。唯一的事情是我没有得到如何在运行时将该名称设置为pojo类的类型。 我想做的是从架构中读取字段,然后从该字段中创建mongodb查询,并从mongodb中获取数据并将其写入文件中。 所以在这种情况下出于映射目的,我需要pojo类,通过它我可以根据模式写数据。我根据mongo db data有一个pojo类。但是我只想写schema。中指定的那些字段,所以我去了根据schema生成运行时pojo类。现在我已经可以生成它了。在创建之前我已经知道了这个名称。我只想将该类设置为ReaderReader <'pojo_class>的一种类型
下面是我的代码。

    JobParametersBuilder paramBuilder = new JobParametersBuilder();
    readSchema.readSchema(new File("c:/chaitanya/employeeSchema3.json"));
    readSchema.printFields();
    String keys=readSchema.getQuery();
    String mainClass=readSchema.getSchemaName();
    schemaToPojo.createPojo(file,mainClass,package);
    paramBuilder.addString("b", keys);
    paramBuilder.addString("query", "{}");
    Job job = jobRegistry.getJob("mongoToJsonJobBatch");
    JobExecution execution;
    execution=jobLauncher.run(job,paramBuilder.toJobParameters());

在这里,我在创建pojo时传递了三个参数i.schema文件ii.class名称,它将在运行时生成。在enter code here iii.package name。在其中创建pojo类的位置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM