我应该使用 Spring 的哪个库来多线程发送电子邮件

2023-12-29

我的电子邮件太多了。我应该编写调度程序以便向他们发送消息。消息不同。我使用 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(使用前将#替换为@)

我应该使用 Spring 的哪个库来多线程发送电子邮件 的相关文章

  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 向无锁队列添加阻塞函数

    我有一个基于循环缓冲区的无锁多生产者 单消费者队列 到目前为止 它只有非阻塞push back and pop front 来电 现在我想添加这些调用的阻塞版本 但我想尽量减少这对使用非阻塞版本的代码性能的影响 也就是说 它不应该将它们变成
  • 将 SpringMVC 应用程序热部署到 Tomcat7 时出现 OutOfMemoryError - 可能与 log4j2 有关

    我在热部署 Spring MVC 4 0 不是 Spring Boot Web 应用程序时遇到问题 我正在尝试不使用 xml 只使用 Java Config 删除 web xml 时出现 OutOfMemoryErrors or 当我部署一
  • Hibernate JOIN FETCH - 对象在结果集中出现多次

    我正在使用 Spring JPA 和 Hibernate 构建 REST API 我搜索了 2 天 但没有找到任何解决方案来解决这个问题 在某些查询中 我有多个 JOIN FETCH 子句 当我执行查询时 我的结果集中多次出现父对象 实际上
  • 将 yaml 中的列表映射到 Scala 中的对象列表(Spring Boot)

    背景 我已经阅读了很多关于如何使用的示例ConfigurationProperties从配置中读取列表 见下文 https github com konrad garus so yaml https github com konrad ga
  • 并发访问且不受数据结构的影响

    问题是这样的 我有一个包含 500 个指针的数组 它们指向双向链表中的 500 个元素 有 10 个并行运行的线程 每个线程运行 50 个循环 并尝试释放列表中的某些元素 该列表已排序 包含简单整数 并且有 10 个其他线程并行运行 搜索包
  • 如何处理或避免BlockedIndefinitelyOnSTM异常?

    我花了很多时间来解决我正在处理的应用程序中遇到的问题 该应用程序是一个 Web 应用程序 使用 scotty 公开 REST 端点 它使用一个TVar保持其更新的状态STM a由前端层触发的动作 由于该应用程序基于事件溯源原则 因此业务层生
  • Spring WebFlux:在 Spring Data MongoDB 反应存储库中的 null 值时发出异常?

    我正在尝试学习如何使用 MongoDB 反应存储库spring boot 2 0 0 M2 但我担心我没有按预期做事 这是我的方法之一 试图找到一个User通过他们的电子邮件 但如果没有 该方法应该抛出异常 Override public
  • 为什么在此单元测试中,BackgroundWorker 没有在正确的线程上调用 RunWorkerCompleted?

    backgroundWorker 的全部目的是在执行耗时的任务后更新 UI 组件正如广告所宣传的那样在我的 WPF 应用程序中 但是在我的测试中 回调不会在调用线程上调用 Test public void TestCallbackIsInv
  • Netty UDP 服务器中的线程未同时执行

    我正在分析的代码使用 Netty NioDatagramChannelFactory 创建 UDP 服务器 它创建一个线程池 ExecutorService threadPool Executors newCachedThreadPool
  • 任何使用 hibernate 、 DI 、 AOP 的 spring MVC 示例应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 Spring MVC 示例 Web 应用程序 https stackoverflow com questions 777946 spring mvc sample web app 我为 spring
  • GCD 和线程

    我想了解一些有关 GCD 和线程的知识 我的视图控制器中有一个 for 循环 它要求我的模型执行一些异步网络请求 因此 如果循环运行 5 次 模型将发出 5 个网络请求 考虑到我正在使用 NSURLConnection 的 sendAsyn
  • ModelAndView 和 ModelMap 有什么区别? [复制]

    这个问题在这里已经有答案了 Is ModelMap只是 Spring 3 中的新名称ModelAndView Spring 3 中的功能有变化吗 在 Spring 3 应用程序中考虑使用以下代码ModelMap RequestMapping
  • 以线程安全的方式获取随机数

    这是一篇描述随机数线程安全性的好文章 以线程安全的方式获取随机数 http blogs msdn com b pfxteam archive 2009 02 19 9434171 aspx 但我坚持使用 RandomGen2 示例 publ
  • Java Spring 应用程序存在内存泄漏。系统非堆内存不断增加

    我已使用 yourkit 分析器监视我的 Web 应用程序 保留最大大小的主要对象是 SessionFactoryImpl webappclassloader 和 CGlib 对象显示 spring crone调度程序会导致内存泄漏吗 我尝
  • 从创建 UI 的同一线程更新 VCL。为什么?

    我知道我必须调用 Synchronize 来从未创建控件或向窗口发送消息的线程更新 vcl 我经常听到 线程不安全 这个词 但我找不到关于正在发生的事情的实际解释 我知道应用程序可能会因访问冲突而崩溃 但我又不知道为什么 请阐明这个主题 V
  • Java 唤醒休眠线程

    我阅读了其他帖子 但没有找到我正在寻找的确切答案 所以我希望有人能给出一些澄清 我有一个将运行一段时间的程序 我有一些在后台运行的线程来执行各种任务 为了简单起见 让我们考虑 3 个线程 ThreadA每 10 秒执行一次任务 其中Thre
  • 线程安全的 C++ 堆栈

    我是 C 新手 正在编写一个多线程应用程序 不同的编写者将对象推入堆栈 读者将它们从堆栈中拉出 或至少将指针推入对象 C 中是否有任何内置结构可以在不添加锁定代码等的情况下处理此问题 如果没有 那么 Boost 库呢 EDIT 你好 感谢您
  • 为什么 spring-boot 应用程序不需要 @EnableWebMvc

    所以我写了一个小应用程序 为了熟悉基础知识 我使其尽可能简单 我使用 Config java 文件制作了一个简单的 mvc 应用程序 当我认为现在应用程序应该抛出错误时 它实际上可以工作 这是我的 pom xml

随机推荐