将一个代理依赖项注入一个类型为Spring批处理实现的属性

时间:2014-01-12 16:44:15

标签: spring interface dependency-injection type-conversion spring-batch

我的问题的关键是如何在使用Spring Batch代理注入属性时,键入属性以从两个不同的接口公开方法。

我的设计问题涉及如何注入Spring代理在Spring Batch中使用的依赖项。依赖关系由Spring代理,因为它已被限定为Spring Batch步骤。这是必需的,因为依赖项具有必须从Spring Batch作业参数注入的值。将bean限定为Spring Batch步骤是在ExecutionContext中使依赖项可用的最佳方法,以便可以注入作业参数。如何解决这个问题的任何意见将非常感激。

我的具体情况是如Spring Batch Samples中所述,在Spring Batch中实现AggregateItemReader。您可以找到示例AggregateItemReader herejavadoc的来源。

不同之处在于我的实现打算使用JdbcCursorItemReader来聚合。这意味着我的AggregateItemReader必须实现接口ItemReader和ItemStream。这允许Spring Batch通过公开Spring Batch管理ItemStream所需的open(ExecutionContext executionContext),update(ExecutionContext executionContext)和close()方法来正确使用我的AggregateItemReader。此外,我的AggregateItemReader中存储对处理数据加载的ItemReader的引用的属性必须提供对这些相同方法的访问。因此该属性被输入JdbcCursorItemReader。这引入了一个问题,因为Spring Batch创建的代理依赖于依赖项的接口,ItemReader和ItemStream。这些类型的代理不能注入到JdbcCursorItemReader类型的属性中。

0 个答案:

没有答案