- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下是阅读器bean的代码示例
<bean id="reader"
class="org.springframework.batch.item.database.JdbcCursorItemReader"
scope="step">
<property name="dataSource" ref="dataSource" />
<property name="sql"
value="#{@sqlStatements[jobParameters['key']]}" />
<property name="rowMapper" ref="#{jobParameters['key'] + 'Mapper'}" />
</bean>
有<util:map id="sqlStatements"/>
.我有一个类似的作家 bean 。我想要一个处理器的动态切换器。界面ItemProcessor<I,O>
需求I
& O
值得一提的是,要么我必须以某种方式切换它,要么创建一个自定义的 ItemProcessor。
我试过下面的代码,但没有用。
<batch:job id="springBatch">
<batch:step id="step1">
<batch:tasklet>
<batch:chunk reader="reader" processor="#{jobParameters['key'] + 'Processor'}"
writer="writer" commit-interval="1"></batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
它给出了一个org.springframework.expression.spel.SpelEvaluationException
对于 jobParameters,可能是因为 scope=step
没有为它定义。
有人可以为此提供替代方案吗?
最佳答案
使用 Classifier
可以简化此问题的很多解决方案:创建自定义 ItemProcessor<Object, Object>
并注入(inject) Classifier<Class, ItemProcessor>
( PatternMatchingClassifier
可以装)和 ItemProcessor.process()
使用分类器检测正确的处理器。
另请参阅 ClassifierCompositeItemWriter
.
关于java - 根据 JobParameters 动态切换 ItemProcessor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21323191/
有没有办法改变 ItemProcessor 的跳过行为,使其表现得像 ItemWriter?在 ItemProcessor 中抛出可跳过的异常会导致重新处理所有已接受的项目,从而导致其复杂性呈二次方的
我在我的批处理 Spring 项目中定义了一个作业流,并定义了 ItemReader、ItemProcessor、ItemWriter 等 我的 ItemReader 如下代码: @Component
以下是阅读器bean的代码示例 有 .我有一个类似的作家 bean 。我想要一个处理器的动态切换器。界面ItemProcessor需求I & O值得一提的是,要么我必
如果项目符合特定逻辑,我希望能够在处理它时删除它。例如,如果该项目不包含我要查找的值,我不希望将该项目写出到文件中。 我目前正在使用一个实现 ItemProcessor 的类. 我只是返回null吗?
我正在使用 Spring Batch 来解析我的文件。在 ItemProcessor 中,我验证传入字段是否正确。如果不是,我想抛出 ValidationException 并将具有不正确字段的相应行
我需要将一些数据从一个表迁移到另一个表,并在两者之间进行一些处理。处理是专有的,并作为 REST 服务公开。因此,我需要调用 REST 服务从表中读取记录,然后将处理后的记录写入另一个表中。如何将其实
我有一个场景,我需要解析平面文件并将这些记录处理到 mysql 数据库插入(模式已经存在)。 我正在使用 FlatFileItemReader 解析文件,并使用 JdbcCursorItemWrite
我正在编写一个 spring 批处理作业,在我的一个步骤中,我有以下处理器代码: @Component public class SubscriberProcessor implements Item
我有一组非常大的电子表格,需要使用 Spring Batch 生成。 我有一个 ItemReader 发出“行”,我希望我的 ItemProcessor 每收到 3000 行发出 1 个“表”。 有什
所以我在 Spring Batch 3.0.7.RELEASE 和 Spring 4.3.2.RELEASE 中遇到问题,监听器没有在我的 ItemProcessor ItemStreamReader
我需要在项目处理器之间传递与处理项目相关的数据,我不需要保留数据,最好的方法是什么(注意我目前正在使用 StepSynchronizationManager 访问 stepExecution 并将数据
问题很简单:如何将仅在 ItemReader 中知道的值(例如当前文件名)传递给 ItemProcessor? @Bean @JobScope public ItemReader reader(@Va
我有一个 Spring Batch 应用程序来获取 samba 服务器中的文件并在同一服务器上的不同文件夹中生成新文件。然而,流程中仅调用 ItemReader。问题是什么?谢谢。 批量配置: @Co
我想知道这样的流程: ItemReader -> ItemProcessor -> ItemWriter 其中每一个都是实现等效接口(interface)的自定义类,并且在面向 block 的步骤中,
我在 Spring Boot 和 Spring Batch 应用程序中遇到问题,我分享我的情况,我的 Layer Dao 是一个抛出 NPE (NullPointerException) 的接口(in
所以我正在创建我的第一个 Spring 批处理作业。我正在尝试读入 xml,操作一些值,然后将其写出。如果我不实现 org.springframework.batch.item.ItemProcess
我是一名优秀的程序员,十分优秀!