publicvoidadd(Book book){bookMapper.insert(book); // send after tx commit but is asyncTransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter(){@Overridepublicvoid afterCommit(){System.out.println("add operation log after transaction commit...");}});}
该方法就可以实现在事务提交之后进行操作。
操作异步化
使用线程池来进行异步:
privatefinalExecutorServiceexecutorService=Executors.newFixedThreadPool(5);publicvoidinsert(Book book){bookMapper.insert(book); //send after tx commit but is asyncTransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter(){@Overridepublicvoid afterCommit(){executorService.submit(new Runnable(){@Overridepublicvoid run(){System.out.println("send email after transaction commit...");}});}});}