Spring Data Jpa 如果从@Value(“#{jobExecutionContext}”)获取数据,如何将上下文数据设置回jobExecutionContext?

vsikbqxv  于 2023-05-17  发布在  Spring
关注(0)|答案(1)|浏览(144)

在这个文档中,它展示了如何传入上下文数据

@JobScope
@Bean
public FlatFileItemReader flatFileItemReader(@Value("#{jobExecutionContext['input.name']}") String name) {
    return new FlatFileItemReaderBuilder<Foo>()
            .name("flatFileItemReader")
            .resource(new FileSystemResource(name))
            ...
}

我将@Value("#{jobExecutionContext['input.name']}") String name改为@Value("#{jobExecutionContext}") Map<String, Object> context,我想传入一个对象,并在context.put("aa","bb)步骤中放入额外的数据,然后将这些新数据传递到下一步。但由于context对象是UnmodifiableMap,因此引发了异常。
这些教程只提到了如何获取数据,但没有展示如何设置数据。
更新1:如果我有一个@SteopScope ItemWriter\ItemReader\ItemProcessor,传入上下文数据的唯一可能方法是使用构造函数注入?

8wtpewkr

8wtpewkr1#

我想传入一个对象,并将额外的数据放入步骤上下文中。put(“aa”,“bb),然后将这些新数据传递到下一步。
在步骤之间传递数据将在本节中进行说明:将数据传递到后续步骤。您可以将步骤执行注入到所需的组件中,以访问执行上下文。然后可以根据需要设置要传递的属性。

相关问题