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

时间:2015-10-20 05:57:55

标签: java spring maven

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

提前致谢。

2 个答案:

答案 0 :(得分:0)

没有。如果你真的在运行时生成这些类,那么在编译期间就无法引用它们(使用<div class="section_header"> <span><img src="image/bt_event.png" class="eventPic"></span> <span>服務說明</span> </div>),因为它们不存在。

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

答案 1 :(得分:0)

@Thomas:谢谢你的回答。从模式我知道将在运行时生成的pojo的类名。通常情况是我没有得到如何在运行时将该名称设置为pojo类的类型。 我想要做的是从模式中读取字段然后从该字段创建mongodb查询并从mongodb获取数据将其写入文件。所以在这种情况下为了映射的目的,我需要pojo类,通过我可以根据模式编写数据。我有一个pojo类根据mongo db data.but我想只写那些在schema.so中指定的字段我去根据schema生成运行时pojo类。现在我能够生成它。我知道它之前会创建该名称。我只想将该类设置为一种类型的阅读器,如ItemReader&lt;'pojo_class&gt;
下面是我的代码。

    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类的地方