Java 结合REST调用的数据库事务

Java 结合REST调用的数据库事务,java,database,spring,rest,transactions,Java,Database,Spring,Rest,Transactions,我必须将记录保存到数据库,然后将一些数据发送到restful web服务。我需要它们一起发生。如果一个失败了,那么另一个也不应该发生。例如,考虑下面的代码: saveRecords(records); sendToRestService(records); 如果saveRecords因违反数据库约束而失败,那么我不希望rest调用发生。我可以让saveRecords发生在它自己的事务中,并在调用sendToRestService之前提交它,但rest服务仍有可能关闭。我可以了解rest服务是否

我必须将记录保存到数据库,然后将一些数据发送到restful web服务。我需要它们一起发生。如果一个失败了,那么另一个也不应该发生。例如,考虑下面的代码:

saveRecords(records);
sendToRestService(records);
如果saveRecords因违反数据库约束而失败,那么我不希望rest调用发生。我可以让saveRecords发生在它自己的事务中,并在调用sendToRestService之前提交它,但rest服务仍有可能关闭。我可以了解rest服务是否成功,如果没有成功,我可以稍后尝试发送它们。我只是想知道是否有更好的策略,因为这似乎是一种常见的情况


谢谢你的建议。

为什么不试试观察者设计模式呢

我假设saveRecords(records)和sendToRestService(records)方法位于两个不同的类中

如果使用Observer设计模式,则可以在调用类对象发生更改时通知包含sendToRestService()方法的类

参考: