說說 Spring DAO 的設計思想

DAO (Data Access Object )是訪問數據的對象,它不但屏蔽了不一樣的數據存儲介質(數據庫、文件或 LDAP 等),也屏蔽了具體的實現技術 。數據庫

咱們只要爲數據訪問定義好 DAO 接口,而後使用具體技術來實現 DAO 接口,就能夠平滑地切換這些不一樣的實現技術啦O(∩_∩)O~單元測試

業務層經過 DAO 接口來訪問數據,這樣就實現了業務層與 DAO 層具體持久化技術之間的解耦,好比下圖中的 RoleService 經過 RoleDao 接口來訪問角色數據對象:測試

抽象出 DAO 層有這些優勢:代理

  • 能夠很容易構造出模擬對象,方便開展單元測試。
  • 有兩種切面技術能夠選擇,便可以使用 JDK 動態代理,又能夠使用 CGLib 動態代理。
  • 最關鍵的是實現了業務層與 DAO 層具體持久化技術之間的解耦。
相關文章
相關標籤/搜索