我的电子邮件太多了。我应该编写调度程序以便向他们发送消息。消息不同。我使用 spring 框架 4.x。
我可以编写连接到 SMTP 服务器的简单类。但在这种情况下,我也应该编写我的线程库以便并行发送电子邮件。
spring 是否已经编写了库,可以让我更灵活地完成此任务?我不想使用线程。如果 spring 已经有这个功能就好了。
我需要 Spring 集成吗?
此致,
是的,你绝对可以使用 Spring Integration 做到这一点,因为有一个ExecutorChannel
实现可以提供一个TaskExecutor
来自 Spring 核心:
<channel id="sendEmailChannel">
<dispatcher task-executor="threadPoolTaskExecutor"/>
</channel>
<int-mail:outbound-channel-adapter channel="sendEmailChannel" mail-sender="mailSender"/>
但无论如何,您应该记住,所有 Spring Integration 组件都基于 Java,并且ExecutorService
用于背景。
从另一方面来说,如果您只需要从 Spring Integration 发送邮件,那么这将是一种开销,并且可以简单地使用 Core Spring Framework 遗产,例如JavaMailSender
作为一颗豆子和@Async
为了sendMail
方法来实现你的parallel
要求。
UPDATE
您能告诉我这种情况是否需要 JMS 吗?
我在这里没有看到任何与 JMS 相关的东西。你没有(或者至少没有表现出)任何真实的integration
您的解决方案中的点。即使对于仅用于电子邮件发送的 Spring Integration,我也可以这么说。然而,使用 Spring Boot,您的 SI 配置将足够短。从另一方面来说,如果您更好地学习 Spring Integration,最终您将获得更多的收益来依赖系统的集成组件,无论是在内部还是通过 JMS、AMQP、Kafka 等与其他系统进行外部集成。
说实话:很多年前,我第一次接触 Spring Integration 是因为需要从 FTP 获取文件并能够自动获取新文件。我只在 Spring Integration 中找到了解决方案1.0.0.M1
。在简短的 XML 配置之后<int-ftp:inbound-channel-adapter>
我喜欢 Spring Integration,从那时起它就成为我生活的一部分。 :-)
因此,您可以在简单的应用程序中继续使用 Spring Integration,或者只是遵循更正式的解决方案JavaMailSender
直接使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)