最近看了看社群的精華貼,知道原來service之間是可以巢狀事務的,前些日子還托同事去網路查,險些聽信了網上事務只能封裝對dao一層的操作的說法。 於是開始動手試驗,照新的觀點,只要兩個事務傳播屬性都為propagation_required即可。
servicea 定義:
package ht.business.test;
import ht.business.dao.businessdao;
import ht.business.model.business;
public class businessservice
/*** @param businessdao 要設定的 businessdao
*/public void setbusinessdao(businessdao businessdao)
public business addbusiness()
}
service b 定義:
package ht.workflow.test;
import ht.workflow.dao.worktabdao;
import ht.workflow.model.worktab;
import ht.business.model.business;
import ht.business.test.*;
public class workflowservice
/*** @param businessservice 要設定的 businessservice
*/public void setbusinessservice(businessservice businessservice)
/*** @return worktabdao
*/public worktabdao getworktabdao()
/*** @param worktabdao 要設定的 worktabdao
*/public void setworktabdao(worktabdao worktabdao)
public void addworktab()
}
測試類定義:
package ht;
import org.springframework.dao.dataacces***ception;
import ht.workflow.test.*;
public class testwb ;
workflowservice wfs=(workflowservice)ctx.getbean("workflowmanager");
trycatch(dataacces***ception e)
}}
<?xml version="1.0" encoding="utf-8"?>
org.hibernate.dialect.oracledialect
true
50true
ht/business/model/business.hbm.xml
ht/workflow/model/worktab.hbm.xml
propagation_required
propagation_required
目的: service a 用來向business表插入一條記錄 .
service b 呼叫service a 向business表插入一條記錄後,再向worktab表插入一條記錄。
若service a異常,事務回滾,兩個表都沒有資料。
若service a正常執行,但在向worktab表插入資料時候異常,整個事務回滾,兩個表仍然都沒有插入資料。
若service a正常執行,後面插入worktab也資料正常,則兩個表都插入資料。
題外話:當軟體開發基本上只要熟悉操作手冊進行配置,當能力被熟練程度所代替,不知道我們還剩下多少創造力可以發揮了。
巢狀Makefile問題解決一例
先看一下目錄結構 總控makefile如下 1 cflags wall2 cc gcc3 4 5 subdirs server client6 7 export cflags cc8 9 10 11 all subdirs 12 13 subdirs 14 make c 15 16 17 clean...
演算法優化一例
本文將以排序演算法中的插入排序為例,介紹優化演算法,編制高效程式的方法。人們通常用於排序手中橋牌的方法是一次考慮一張牌,將它插入到已經排序過的牌的適當位置中 時刻讓它們保持有序 在計算機實現中,我們需要將較大的元素移到右邊,為插入的元素準備空間,然後再在空位置上插入該元素。該演算法的通常的乙個實現如...
delegate 委託一例
using system using system.collections.generic using system.linq using system.text namespace consoletest public static void englishgreeting string snam...