如何解决有没有办法让普通的类事务在 Spring 中感知?
大家好
假设我有一个与数据库和消息队列都无关的假设类。有没有办法让这个类的方法事务感知?
为了解释我的观点,假设我有一个可用于在文件上写入给定信息的类。例如类似下面的内容
public class WriterToFileSystem
{
private fileName="current_file_name";
public void addToFile(String textToAppendToFile)
{
//---add $textToAppendToFile to already opened file byte by byte
}
}
还有另一个类使用此类的对象,如下所示:
public class Appender
{
private WriterToFileSystem writer;
@Transactionl // making it transactional so that when exception happens all changes get discarded
public void append(String someLongText)
{
writer.addToFile()
}
}
假设文件系统的文件大小限制为 200 字节,目前我们已向其写入 100 字节。调用 addToFile
方法将导致为给定字符串的最后一个字节引发异常,大小为 101 个字节。
有没有办法让一流的事务感知(也许通过实现某个接口)这样通过用@Transactional 注释装饰第二个类的方法,事务管理器可以回退上次调用后添加到文件中的所有数据。
请记住,这是一个假设的场景,我知道有一些工具可以为文件提供类似的功能。这是一个普遍的问题。
提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。