我正在使用Spring批处理设计批处理应用程序,其中我有以下架构(层):
我的问题是:
由于
答案 0 :(得分:3)
是否有最佳实践(可能是特定的设计模式) 顶层模块和业务逻辑层之间的接口?
afaik没有真正的最佳实践,这与已知的最佳实践不同,但批次通常需要解决性能要求/约束,甚至更常产生性能问题,因此我的最佳实践是:
为作者和业务层的界面提供一些灵感
我会使用选项2,因为在批处理上下文中我想使用列表和批处理SQL
像往常一样,这取决于您的具体要求: - )ItemWriter包装示例
public class SimpleItemWriter implements ItemWriter<SimpleItem> {
@Override
public void write(List<? extends SimpleItem> items) throws Exception {
// do something, e.g. delegate to another spring bean
}
}
ItemWriterAdapter配置示例
<bean id="sample-item-writer-adapter" class="org.springframework.batch.item.adapter.ItemWriterAdapter">
<property name="targetObject" ref="businessLayerBean" />
<property name="targetMethod" value="doSomething"
</bean>
<step id="splitFilesStep">
<tasklet>
<chunk
reader="itemReader"
writer="sample-item-writer-adapter"
commit-interval="5">
</chunk>
</tasklet>
</step>