spring批处理作业在manager中执行方法

时间:2014-05-13 06:39:06

标签: spring-batch

我是春季批次的新人,所以感谢帮助。到目前为止,我有两个弹簧批处理作业。它们都有一个项目阅读器(sqls select)和一个项目编写器(sql insert)。

他们看起来像这样......

<job id="job-daily-tran-counts" xmlns="http://www.springframework.org/schema/batch">
    <step id="job-daily-tran-counts-step1">
        <tasklet>
            <chunk 
                reader="dailyTranCountJdbcCursorItemReader" 
                writer="dailyTranCountItemWriter" 
                commit-interval="1000" />
        </tasklet>
    </step>
</job>

现在我想编写一个简单的批处理作业来执行我的一个管理器中的方法,该方法刷新了许多值映射列表的缓存。项目阅读器和项目编写者并不适合我认为。我该如何构建这个批处理作业?

更具体地说,我有一个名为LovManagerImpl的类,我需要从spring批处理中执行afterPropertiesSet方法。最好的方法是什么?

public class LovManagerImpl implements LovManager,InitializingBean {

    /**
     * The list of values data access object factory
     */
    @Autowired
    public LovDaoFactory lovDaoFactory;

    /* (non-Javadoc)
     * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
     */
    public void afterPropertiesSet() throws ReportingManagerException {
        Map<String,LovDao> lovDaoMap = lovDaoFactory.getLovDaoMap();
        for (Map.Entry<String,LovDao> entry : lovDaoMap.entrySet()){         
            String code = (String)entry.getKey();
            LovDao dao = (LovDao)entry.getValue();
            dao.getLov(code);
        }   
    }

感谢

1 个答案:

答案 0 :(得分:2)

使用Tasklet;请参阅Can we write a Spring Batch Job Without ItemReader and ItemWriter回答 对于您的特定情况 - 重用现有服务方法 - 使用MethodInvokingTaskletAdapter