我是Spring批处理的新手,我遇到了使用Spring批处理实现业务用例的问题。
基本上,我正在从数据库中读取数据,即新闻通讯的订阅者列表。然后,我需要向每个订阅者发送一封电子邮件,并将数据插入数据库,以便知道电子邮件发送到哪个订阅者。
我使用ItemProcessor实现,其进程方法返回MimeMessage并将订阅者作为参数;与此处理器关联的编写器类型为:org.springframework.batch.item.mail.javamail.MimeMessageItemWriter
。
问题是我需要另一个用于数据库插入的编写器(可能使用CompositeItemWriter),它将订阅者列表作为参数,而我所拥有的只是来自上述ItemProcessor的MimeMessage。
有人可以帮忙吗?
答案 0 :(得分:1)
您所说的使用ItemProcessor
界面将消息保存到数据库在概念上是不对的。您需要使用ItemWriter
。您可以以ItemWriter
实现对数据库的写入,并将邮件作为ItemWriter
发送,并使用CompositeItemWriter
进行组合。
Subscriber
将传递给这些项目编写者。Subscriber
向MimeMessage
的转换由内部第二作者转移,然后转移到MimeMessageItemWriter
(由本作者汇总)。