兩種Spring事務管理方式:編程式、聲明式 跟spring aop管理事務有什么不同?


聲明式就是提前指派,在為某些包,類,方法,指定好受事物管理,需要再配置文件中配置
編程式就是程序員在程序里自由發揮,啟動事物管理了,aop是面向切面編程,把程序執行的過程看成一條連貫的線,aop就是在指定的點切一刀,凡是經過這點的操作都必須先執行aop定義好的操作,好處就是在不影響原程序的情況下,方便的加入或刪除附加的邏輯處理操作,比如日志記錄,權限控制等
 
 
編程式事務與聲明式事務的區別是什么?
編程式事務是自己寫事務處理的類,然后調用
聲明式事務是在配置文件中配置,一般搭配在框架里面使用!
 
聲明式事務
聲明式事務(declarative transaction management)是Spring提供的對程序事務管理的方式之一。
Spring的聲明式事務顧名思義就是采用聲明的方式來處理事務。這里所說的聲明,就是指在配置文件中申明。用在Spring配置文件中聲明式的處理事務來代替代碼式的處理事務。這樣的好處是,事務管理不侵入開發的組件,具體來說,業務邏輯對象就不會意識到正在事務管理之中,事實上也應該如此,因為事務管理是屬於系統層面的服務,而不是業務邏輯的一部分,如果想要改變事務管理策划的話,也只需要在定義文件中重新配置即可;在不需要事務管理的時候,只要在設定文件上修改一下,即可移去事務管理服務,無需改變代碼重新編譯,這樣維護起來極其方便。
Spring使用AOP來完成聲明式的事務管理,因而聲明式事務是以方法為單位,Spring的事務屬性自然就在於描述事務應用至方法上的策略,在Spring中事務屬性有以下四個參數:
1.傳播行為
2.隔離級別
3.只讀提示
4.事務超時期間
 
spring事務的問題!!!謝謝~~!!!
比方說.我有三個方法 inserts();insertA();insertB();
在inserts();中調用A&B這兩個方法.分別去執行不同的數據庫操作
A&B兩個方法中都做了try{}catch{}的異常處理
在inserts()方法上加入spring事務(Propagation.REQUIRED)
那么.當insertA()保存成功之后insertB()保存失敗.
請問.A是不是就不能回滾了?有沒有什么解決辦法?
 
檢舉| 2011-11-28 11:58提問者采納
你先要知道事務的特性 
事務四大特性(簡稱ACID)  
 
1、原子性(Atomicity):事務中的全部操作在數據庫中是不可分割的,要么全部完成,要么均不執行。 
2、一致性(Consistency):幾個並行執行的事務,其執行結果必須與按某一順序串行執行的結果相一致。 
3、隔離性(Isolation):事務的執行不受其他事務的干擾,事務執行的中間結果對其他事務必須是透明的。 
4、持久性(Durability):對於任意已提交事務,系統必須保證該事務對數據庫的改變不被丟失,即使數據庫出現故障。 
你在inserts()中使用了事務 而在這個方法中分別調用了a和b方法 那么只要a和b方法哪一個出現了異常 那么整個事務都會回滾 
當然你可以在spring中配置聲明式事務 那就沒必要去手動處理事務了 
只需要在配置文件中進行配置即可追問您 好..可是.我在A&B中都做了try{}catch{}的異常捕捉處理///一樣還會回滾么?回答當然會 要學會去嘗試 你自己試試就知道了 自己動手的話 印象深刻些提問者評價好的..謝謝
 
 
聲明式事務與編程式事務的區別與聯系
請詳細解釋編程式事務、聲明式事務。及兩者的優缺點。
一定要說清楚什么是聲明式事務,什么事編程式事務。
小弟的財富值下載文檔用光了,不好意思。
 
檢舉| 2011-01-06 10:26提問者采納
Spring的聲明式事務通常是指在配置文件中對事務進行配置聲明,其中包括了很多聲明屬性,具體可以參考《Spring高級編程》這本書,它是通過Spring Proxy幫你做代理,自己不用額外的寫代碼,只要在Spring配置文件中聲明即可;通常用在數據庫的操作里面;
編程式事務就是指通過硬編碼的方式做事務處理,這種處理方式需要寫代碼,事務中的邏輯可以自己定制;可以是數據庫的東東,也可以是其他的操作。。。提問者評價你真棒,學習了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM