2016-08-17 241 views
0

我正在使用beforeStep来调用我的ItemProcessor中的数据集,我可以使用StepExecutionListener - beforeStep内部不是ItemProcessor的一部分的公共函数吗?Spring批处理 - StepExecutionListener

beforeStep方法是否可以使用一种常用的方法?

+0

“invoke datasets”和“common function”是什么意思?也许你可以举一些例子吗? – marians27

回答

0

很抱歉,我的回复太长,无法添加为评论,所以回复为答案。

感谢您关注此事。我有一个步骤,它从csv文件中读取并写入到数据库表A中。我有一个处理器,用于编写业务逻辑。现在为了我的业务逻辑,我需要从表B和表C中获取值。为了实现这一点,我将这些静态表加载到数据集/ Map中(例如:Map initialize(Collection collection)),并在ItemProcessor中通过@ beforeStep。

我的问题是,我在我的工作中有多个步骤,它似乎我必须击中数据库每一步加载相同的值。我尝试将业务逻辑与@beforeStep一起移动到另一个方法,但返回空值。这种方法是否正确或者是@BeforeStep绑定在ItemProcessor中的StepExecutionListener(公共类A1实现ItemProcessor,StepExecutionListener {)

0

我能够解决这个问题,通过创建一个util:map用于所有依赖静态表的bean并注入将这个bean放入处理器中。