1. 程式人生 > >spring_事物傳播屬性理解

spring_事物傳播屬性理解

一個非事務方法呼叫一個事務方法,會有什麼結果?嗯,說說你的理解,為什麼?
事務不起作用
知識點 spring的動太代理 及 事物的傳播屬性

在一個Service內部,事務方法之間的互相呼叫,普通方法和事務方法之間的互相呼叫,都不會開啟新的事務.是因為spring採用動態代理機制來實現事務控制而動態代理最終都是要呼叫原始物件的,而原始物件在去呼叫自己方法時,是不會再觸發代理了!

解決 
讓原始物件呼叫自己的其它方法也走一把 動態代理
可以把方法B放到另外一個service或者dao,然後把這個server或者dao通過@Autowired注入到方法A的bean裡面,這樣即使方法A沒用事務,方法B也可以執行自己的事務了。