業務層應該不應該出現事務控制** 這個問題已經在業界達成共識:業務層絕對不應該出現事務控制**,嚴格的說不應該出現與業務無關的**。
在aop沒有出現以前是怎樣控制的呢?
似乎沒有很好的方法
但是隨著spring的出現aop的風靡 這個問題得到了比較優雅的解決 例如
有業務方法
bizmethod()
要對這個方法加上事務控制
在aop出現之前 我們怎麼解決呢?只能這樣
bizmethod()
這樣事務**就混合到業務邏輯中 跟dao層產生緊耦合 不利於業務**的復用
而採用aop來控制就可以採用配置檔案的方式 將事物控制**提取到業務**之外
提高了業務**的復用度 使業務層與dao層產生松耦合
業務層使用事務
以前一直覺得東西,框架都不在那裡嗎。我幹嘛要深入的去了解實現的原理 有很大一部分可能是因為知識的薄弱,然後看到了感覺也就那樣,他不就是一直那樣存在的 我會使用不就可以了。現在知道,其實出來混遲早要還的,當真正使用的時候才知道你不懂原理使用起來雖然有時候是把乙個功能實現了,但是卻違背了這樣使用的初衷 ...
業務邏輯層之事務指令碼與領域模型
在前面的部落格中,已了解了前端控制器,頁面控制器,應用控制器這三種表現層模式,如果說它們精心安排了外部世界與系統內部的通訊,那麼業務邏輯層的工作則是處理應用程式的業務部分。業務邏輯層應當遠離那些外部的 噪音 業務邏輯是整個應用程式的根本目的所在,系統的其它部分都是為這部分服務的。這裡介紹兩種經常使用...
為業務層新增宣告式事務
可以採用mybatis控制事務 事務應該在業務邏輯層控制 硬編碼方式,繁瑣,且破壞分層,不易維護 可以採用aop的方式實現 spring提供了宣告式事務支援 propagation 事務傳播機制 required 預設值 requires new mandatory nested supports ...