java—在spring中,有没有办法让普通类事务感知?

62o28rlo  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(301)

大家好
假设我有一个假设类,它既不涉及数据库也不涉及消息队列。有没有办法让这个类的方法能够感知事务?
为了解释我的观点,假设我有一个类,可以用来在文件中写入给定的信息。例如下面这样的例子

  1. public class WriterToFileSystem
  2. {
  3. private fileName="current_file_name";
  4. public void addToFile(String textToAppendToFile)
  5. {
  6. //---add $textToAppendToFile to already opened file byte by byte
  7. }
  8. }

还有一个类使用此类对象,如下所示:

  1. public class Appender
  2. {
  3. private WriterToFileSystem writer;
  4. @Transactionl // making it transactional so that when exception happens all changes get discarded
  5. public void append(String someLongText)
  6. {
  7. writer.addToFile()
  8. }
  9. }

假设文件系统的文件大小限制为200字节,而目前我们已经向其写入了100字节。使命感 addToFile 方法将导致针对给定字符串的最后一个字节(大小为101字节)引发异常。
是否有任何方法可以使第一类事务感知(可能通过实现某个接口),以便通过使用@transactional注解装饰第二类的方法,事务管理器可以在最后一次调用后角色还原添加到文件中的所有数据。
请记住,这是一个假设的场景,我知道有一些工具可以为文件提供类似的功能。这是一个一般性问题。
提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题