在新线程问题中使用 spring 发送电子邮件

2024-03-22

我正在开发的应用程序的功能之一是,每次用户在我们的系统中注册他的发票时都会发送一封电子邮件。从 Java 应用程序发送电子邮件很容易,尤其是使用 Spring 框架时。我用JavaMailSenderImpl and 简单邮件消息来自 Spring 框架,它工作正常。

但我需要在新线程中发送电子邮件,以便与 SMTP 服务器的通信不会减慢应用程序的其余进程。问题是当我打电话时

MailSender.send()

如果从新线程中使用方法,则不会发送电子邮件,这与在同一线程中发送时相反。 我尝试用春天的@Async 注解、spring Executor 和普通的旧 java.lang.Thread但它不起作用。

可以用java在spring中异步发送电子邮件吗?有人遇到过类似的问题吗? 如果需要,我可以发布一些代码示例。

Tnx


它应该有效。

你需要告诉 Spring 它应该关注你的@Async注释者:

<task:annotation-driven />

您需要注意一些限制:

  • 带注释的方法必须属于 spring bean
  • 带注释的方法的调用必须从不同的 Spring Bean 执行(如果您使用标准 Spring AOP)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在新线程问题中使用 spring 发送电子邮件 的相关文章

随机推荐