關於spring框架中的IOC/DI和AOP,以及聲明式事務管理的理解

IOC/DI:中文意思控制反轉/依賴注入,針對以前編程,類中的屬性都是寫死的,直接在程序中給成員變量初始化。這樣的編程,耦合度

太高,代碼的靈活性和擴展性太差。spring的處理方式是,在配置文件中,將類中的需要初始化的成員變量羅列出來。在應用程

序啓動的時候,針對配置文件的配置,初始化對象。這些對象默認是Singleton的,保存在容器中(map中)。當類初始化的時

候,從容器中取出。這樣不僅不僅可以節省對象創建的時間,提高了性能。而且,起到了解耦的作用。靈活性更強。

AOP:面向切面編程,是動態代理模式的一個應用。如果想在某個類的方法上,加上一些處理。但是無法直接修改源碼,這個時候,使用

這個編程方式會比較靈活。AOP在spring上的主要應用是聲明式事務管理。

事務:訪問數據庫的一系列操作的集合,這些操作可以是直接dos命令行的sql操作,也可以是程序的一系列數據訪問。

4大特性:ACID。

原子性:要麼全做,要麼全不做。

一致性:例如對兩個賬戶的操作,一個加,一個減,保持總量不變。

隔離性:兩個事務對數據的操作,不會相互影響(這種說法有點不準確,隔離會有個級別,需要根據級別來判斷)。該特性按照我的理解

就是解決了多用戶多線程訪問數據的安全問題。

持久性:數據保存在數據庫中,一旦提交,永久保存。這個特性對於編程感覺不是很重要

配置spring事務的主要屬性包括:事務的傳播特性propagation、隔離性Isolation、readOnly、norollbackfor、

rollbackfor

propagation:no_support、support、require、require_new、nested、never、mantory

Isolation:uncommit、commit、repeated_read、seralize

readOnly:定義一個事務中的操作,是隻讀操作,不會有其他操作,否則報錯。這個屬性的主要意義,視屏中老師說,spring會對被

改屬性修飾的方法,對數據訪問那個conn進行優化。

後面兩個特性:定義事務遇到什麼情況回滾和不回滾,默認是RuntimeException回滾。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章