首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java EE jsr352中的Spring batch CompositeWriter等价物

Java EE jsr352中的Spring batch CompositeWriter等价物
EN

Stack Overflow用户
提问于 2020-06-14 10:36:04
回答 1查看 67关注 0票数 1

我想深入了解一下在JavaEE7JSR352Batch中实现spring batch CompositeWriter等价物的可能性。

JSL不允许在一个步骤中包含多个ItemWriters。我的方法是在单个ItemWriter中引入委托模式来执行多个sql语句,就像spring batch CompositeWriter一样。请参见下面的示例代码。

代码语言:javascript
复制
<job id="myJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/jobXML_1_0.xsd" version="1.0">
    <step id="step1">
        <chunk item-count="1000">
            <reader ref="JdbcCursorItemReader"/>
            <writer ref="myCompositeItemWriter"/>
        </chunk>    
    </step>
</job>


Pseudo code for myCompositeItemWriter:

MyCompositeItemWriter implements ItemWriter {
     List<ItemWriter> delegates;

     public void open() {
      //initialize delegates here
     }

     public void write(List<Object> chunkedItems) {
        for (ItemWriter myWriter: delegates) {
             myWriter.write(chunkedItems);
          }
       }

}
EN

回答 1

Stack Overflow用户

发布于 2020-06-15 17:35:59

JSR-352 specification的"8.2.1.3编写器“部分:

代码语言:javascript
复制
A chunk type step must have one and only one item writer.

规范中没有提到作家的写作。因此,您需要创建一个自定义复合编写器,实现您所描述的委托模式,并在您的步骤中将其用作项编写器。显然,如果您使用Spring Batch作为您的JSR-352实现,那么您将免费获得这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62367737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档