Spring JavaMailSender:使其异步且持久

时间:2012-05-18 08:14:32

标签: spring queue jms spring-jms

是否有一种简单/轻量级的方法可以为Spring的JavaMailSender添加持久性并让它以异步方式运行? Spring是否为此提供任何“内置”支持?我目前正在寻找使用JMS的队列,但是对于手头的任务来说,它们似乎有些过分(看看ActiveMQ和RabbitMQ)。是否有轻量级的JMS选项?

2 个答案:

答案 0 :(得分:2)

您使用的方法很好。遗憾的是,持久性和异步处理并不是一项简单的任务,您需要编写一些代码。

但是看看Spring integration,它提供了对JMS入口和电子邮件发送内置的内置支持 - 您所要做的就是通过XML DSL连接各个部分。

答案 1 :(得分:-1)

如果你想在Spring中使任何方法异步,你需要做的就是通过task在xml配置中配置<task:annotation-driven/>命名空间。然后,您只需使用@Async注释该方法,它将在自己的线程中运行。请注意,异步调用将在其自己的事务中运行,因为Spring从其内部池中获取新线程以服务该调用。如果这样做,那么您不需要JMS进行异步处理。