当前位置: 首页 > 知识库问答 >
问题:

在Spring Batch应用程序中自定义一个步骤的参数

南门正业
2023-03-14

我正在使用Spring Batch(使用Spring boot)。我的要求是从db读取数据,处理它(验证和stuffs),并将其写入文件。我试图实现这一点使用一个批处理步骤。

问题是,如果我定义了一个步骤,读取器、处理器和编写器应该有相似的参数。(从我看到的示例和错误来看)就像如果我的读取器返回一个db域对象,处理器和编写器应该有域对象参数一样。

我正在寻找的是,阅读器应该返回域对象,处理器应该接收域对象并将其转换为dto/POJO(经过验证和数据转换),并返回dto对象。Writer应该正在接收dto对象并将其写入文件。

请让我知道,如果这是可能的在一个单一的批处理步骤有不同类型的参数。如果是这样,请给我任何例子/链接到它。

共有1个答案

堵彬彬
2023-03-14

转换项是项处理器的典型用例。以下是文档中ItemProcessor部分的摘录:

项目处理器很简单。给定一个对象,转换它并返回另一个。所提供的对象可以是也可以不是同一类型的

因此,在您的例子中,读取器可以返回由项处理器转换为DTOS的域对象。然后,编写器将获取DTO并将其写入文件。下面是一个将数字转换为字符串的快速示例:

@Bean
public ItemReader<Integer> itemReader() {
    return new ListItemReader<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
}

@Bean
public ItemProcessor<Integer, String> itemProcessor() {
    return item -> "foo" + item;
}

@Bean
public ItemWriter<String> itemWriter() {
    return items -> {
        for (String item : items) {
            System.out.println("item = " + item);
        }
    };
}

@Bean
public Step step() {
    return stepBuilderFactory.get("step")
            .<Integer, String>chunk(5)
            .reader(itemReader())
            .processor(itemProcessor())
            .writer(itemWriter())
            .build();
}
 类似资料:
  • 本文向大家介绍SpringBoot中自定义参数绑定步骤详解,包括了SpringBoot中自定义参数绑定步骤详解的使用技巧和注意事项,需要的朋友参考一下 正常情况下,前端传递来的参数都能直接被SpringMVC接收,但是也会遇到一些特殊情况,比如Date对象,当我的前端传来的一个日期时,就需要服务端自定义参数绑定,将前端的日期进行转换。自定义参数绑定也很简单,分两个步骤: 1.自定义参数转换器 自定

  • 本文向大家介绍Android 自定义View步骤,包括了Android 自定义View步骤的使用技巧和注意事项,需要的朋友参考一下 例子如下:Android 自定义View 密码框 例子 1 良好的自定义View 易用,标准,开放。 一个设计良好的自定义view和其他设计良好的类很像。封装了某个具有易用性接口的功能组合,这些功能能够有效地使用CPU和内存,并且十分开放的。但是,除了开始一个设计良好

  • 我想更改整个应用程序组件(文本视图、编辑文本、按钮等)的字体。我发现我可以为应用程序设置样式,但在这里我无法将字体从资产文件夹放入自定义样式xml。我必须将我的自定义TTF字体从资产文件夹放到样式xml中的typeface元素中。我无法将单空间字体更改为自定义字体。我的风格是

  • 我试图按照这篇文章将cucumber规格与IntelliJ中的步骤定义相匹配。 当我按Alt Enter时,我看到检查未定义的步骤选项。但是,我应该看到意图操作创建步骤定义。 我想我已经安装了Cucumber IntelliJ插件,所以这应该不是问题。非常感谢任何帮助。

  • 我试图将自定义对象值传递给Jasper报表,我使用编译后的Jasper即文件。 在jrxml中传递参数 如何访问学生对象?

  • 本文向大家介绍微信小程序自定义prompt组件步骤详解,包括了微信小程序自定义prompt组件步骤详解的使用技巧和注意事项,需要的朋友参考一下 步骤一:新建一个component的文件夹,用来放所有的自定义组件;  步骤二:在该目录下新建一个prompt的文件夹,用来放prompt组件;  步骤三:右击–>新建–>component 直接上代码 wxml js json wxss 使用  例如,在