要想使寫的**具有可復用、可維護、易擴充套件,我們就要面向介面程式設計。
添刪改查,每增加乙個模組都要做添刪改查,重複**之多可想而知,不便於維護,雖然我們使用了持久層框架jpa,但也避免不了重複的**。
如何才能使重複的**更少些呢?
採用泛型+反射技術。
首先我們定義乙個介面
public inte***ce dao
實現類:
public class basedaoimplements dao
@override
public void update(t entity)
@override
public void delete(serializable entityid)
@transactional(propagation=propagation.not_supported)
public t find(serializable entityid)
@transactional(propagation=propagation.not_supported)
public long getcount()
/*** 獲取實體名稱
* 在方法上使用泛型
* @param entityclass
* @return
*/protected static string getentityname(classentityclass)
return entityname;
}如何使用:
只需讓你開發的模組的介面繼承dao介面,實現類繼承basedao
例如:/**
* 使用者業務處理介面
* 一定要繼承dao介面,因為是通過介面操作的
* @author zjq**/
public inte***ce buyerservice extends dao{
/*** 業務處理類
* 交給spring管理
* 並且支援事務,(spring只會對定義在本類的方法應用事務通知,所以把事務放在父類裡面)
* @author zjq**/
@service("buyerservice")//spring只會對定義在本類的方法應用事務通知(advice)
public class buyerservicebean extends basedaoimplements buyerservice {
如何設計乙個優雅的RESTFUL的介面
設計介面是我們開發人員的日常操作。當我們把接 給前端人員時,是否有種拔劍出鞘的錯覺。畢竟交付介面,我們的開發工作就階段性完成了。不過,如果我們沒有乙個介面設計規範的時候,結果會怎樣呢?我們來張圖感受一下。2000年,乙個年輕小夥子 roy thomas fielding 在他的博士 提出了 rest...
如何優雅關閉乙個執行緒
當我們去thread類裡面找相關的介面時,發現有 個stop方法,看上去非常適合用來終止乙個執行緒,但是這個方法上面標了個 deprecated註解,非常明顯,這是乙個廢棄方法,不建議使用它。主要有兩個方面的原因 因為這個方法會將執行緒直接殺掉,沒有任何喘息機會,一旦執行緒被殺死,後面的 邏輯就再也...
如何優雅的生成乙個 diff patch
某天如果你要把一條 git 或 svn 記錄的修改傳送給其他人時我們要怎麼做呢?在 git 下你可以這麼做 git format patch commit sha1 id 1這樣會生成單條記錄的 patch 檔案,當然也可以生成多條或者兩條 commit 記錄之間的修改。例如我們在開源專案 nukl...