我正在尋找一個乾淨的解決方案來讓事務啓動的監聽器。這意味着我希望偵聽器在Spring上下文中成爲一個bean(組件),在開始新事務的時候,事務將從TransactionPlatformManager或Hibernate Session或類似的事件接收事務。事務開始時的監聽器
東西一起:
@Component
class TransactionListener implements ?? {
@Autowired
private Something x;
public void onTransactionBegin(...) {
x.doSomething()
}
}
要具體,我減輕系統範圍的問題,我需要設置一個線程本地事務開始時,這樣我就可以當地的繼續訪問該線程處於休眠的處理實體來檢索信息。
我調查了消息來源,發現這樣的聽衆無法實現。我發現的唯一解決方案是繼承HibernateTransactionManager和它的doBegin()方法,我不覺得特別好。
最簡單的可能是爲「PlatformTransactionManager」創建一個包裝,並在3個方法調用上觸發這些事件。但爲什麼你需要註冊?你在做什麼?你提到解決問題,但這似乎有點奇怪。 –
我面臨的問題是無關緊要的,它是由我們的大型多模塊架構引起的。如果我有選擇作出有關架構的決定,我會以不同的方式做。但這在傳統架構中是不可能的,沒有沉浸式重寫,這就是爲什麼我需要這個。 – redhead