在實際的開發中,使用 @TransactionalEventListener,原以為提交事件的方法的事務提交后才會觸發,實際使用卻發現,並非如此。
表現為查不到提交事件的方法數據修改結果。
實際使用中還需要定義一下監聽方法的事務傳播策略(總是新建)和事務隔離策略(讀未提交),具體注解如下:
@TransactionalEventListener(fallbackExecution = true, value = SomeEvent.class) @Async @Transactional(propagation = Propagation.REQUIRES_NEW,isolation = Isolation.READ_UNCOMMITTED) public void someMethod(SomeEventevent) { }
耽擱了很久才發現,可能自己理解不到位,以后有時間再看代碼了解一下。
暫記於此,以備后續查閱。