Spring 使用 Java 配置在 SQL 内进行批处理后期绑定

Spring Batch Late Binding Within SQL Using Java Config

我们正在将基于 xml 的 spring 批处理配置转换为 java 配置。
在 xml 形式的 JdbcCursorItemReader 中,我们使用了后期绑定:

SELECT * 来自 MY_TABLE_#{jobParameters[param1]}

如何使用 Java 配置语法来实现?

您可以通过以下方式实现:

@Bean
@StepScope
public JdbcCursorItemReader jdbcCursorItemReader(@Value("#{jobParameters['param1']}") String param1) {
    return new JdbcCursorItemReaderBuilder<>()
            .sql("SELECT * FROM MY_TABLE_" + param1)
            // set other properties
            .build();
}

参考文档在每个页面上都包含一个切换按钮,可让您查看 Java 和 Xml 配置中的示例。这对您的迁移很有帮助。请参阅此处的示例:https://docs.spring.io/spring-batch/4.0.x/reference/html/readersAndWriters.html#readersAndWriters