【问题标题】:Spring Batch Late Binding Within SQL Using Java Config使用 Java Config 在 SQL 中进行 Spring Batch 后期绑定
【发布时间】:2018-07-17 15:56:08
【问题描述】:

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

SELECT * FROM MY_TABLE_#{jobParameters[param1]}

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

【问题讨论】:

    标签: spring spring-batch spring-java-config late-binding


    【解决方案1】:

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

    @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

    【讨论】:

    • 谢谢!这会起作用,但是在实际大小的查询中,连接可能会很快变得混乱。有没有办法像“旧”风格一样使用后期绑定?它对我来说看起来更干净,更易读。
    • 嗯,同样的情况发生在具有实际大小查询的 XML 配置中,SpEL 表达式也会变得混乱。该示例回答了如何使用后期绑定来获取作业参数的问题,现在由您决定使用StringBuilder 或从属性文件加载查询或使用您认为更简洁的任何其他方法。
    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 2021-08-27
    • 2015-12-08
    • 1970-01-01
    • 2015-12-10
    相关资源
    最近更新 更多