Spi*_*iff 5 java email spring transactions
考虑用户在Web应用程序上创建新帐户的常见用例,以及应用程序向用户的地址发送确认电子邮件.从我所看到的,这通常以3种方式之一实现:
第一种方法简单明了,但存在发送电子邮件后回滚事务的风险,从而使电子邮件无效.第二种方法更复杂,但它保证只有在用户创建实际成功时才发送电子邮件.第三种方法很简单,但是使用不应该知道的业务逻辑来加重Web层.
是不是有一种更简单的方法,也许是AOP驱动的,可以保证只有在用户创建事务实际成功时才会发送电子邮件?我是否认为第一种方法可能会失败?
我们正在使用Java EE + Spring堆栈并且愿意集成其他API(AOP?Spring Integration?)来实现这一目标.
干杯!
我目前用于解决此问题的另一个选项:
http://download.oracle.com/javaee/6/api/javax/transaction/Synchronization.html
要发送电子邮件,建议使用队列并安排每5或15分钟发送一次电子邮件.队列将存储在数据库中,因此在事务中.然后安排一个过程,定期从该队列发送电子邮件.
它是我发现确保电子邮件仅在事务被完成和提交时发送的唯一方式,因为根据定义,电子邮件不依赖于任何类型的数据库事务.
| 归档时间: |
|
| 查看次数: |
5332 次 |
| 最近记录: |