小编Ale*_*lex的帖子

是否有针对MySQL的Spring Batch 3升级脚本?

我还没有看到一个脚本来进行必要的DDL修改,以便从MySQL中的Spring Batch 2 - > 3开始.好奇如果存在?

java mysql spring spring-batch

8
推荐指数
2
解决办法
4883
查看次数

如何使用基于Java的配置来配置Spring Batch StepScope?

我正在使用Spring Batch设置作业服务器。我的JdbcCursorItemReader需要使用sql进行配置,该sql会根据每个作业的运行情况进行更改。因为sql发生了变化,所以我希望读者拥有@StepScope,所以我不必担心sql的有状态性。

所以我设置了一个像这样的类:

public class ParameterSettingJdbcCursorItemReader extends JdbcCursorItemReader implements StepExecutionListener {

    @Override
    public void beforeStep(StepExecution stepExecution) {

        JobParameters jobParameters = stepExecution.getJobParameters();

        if (jobParameters != null) {
            List<Object> args = new ArrayList<Object>();
            for (JobParameter jobParameter : jobParameters.getParameters().values()) {
                args.add(jobParameter.getValue());
            }

            Object[] arrayArgs = args.toArray(new Object[args.size()]);
            String sql = String.format(getSql(), arrayArgs);
            setSql(sql);
        }
    }

    @Override
    public ExitStatus afterStep(StepExecution stepExecution) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

这个想法是我通过JobParameters将sql参数传递给对象,并使用String.format来填充动态变化的sql。

我在整个服务器上使用基于Java的配置。我的ItemReader实例的bean如下所示:

@Bean
@StepScope
public ItemReader<MyInputObject> myInputObjectItemReader() {
    ParameterSettingJdbcCursorItemReader itemReader = new ParameterSettingJdbcCursorItemReader();
    itemReader.setDataSource(myDataSource());
    itemReader.setSql("SELECT * FROM my_table …
Run Code Online (Sandbox Code Playgroud)

java spring spring-batch

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

spring ×2

spring-batch ×2

mysql ×1