Hibernate、iBatis、JPA、JDO、TopLink 等持久化框架各有異常體系,導致業務層耦合具體技術。Spring 提出 DAO 設計理念,以統一異常體系屏蔽底層差異,配合模板類簡化操作,實現「開閉原則」:對擴展開放,對修改關閉,輕鬆整合現有與未來框架。

圖示:業務層依賴 UserDao 介面,具體實現(Hibernate/iBatis/JPA)可熱插拔。
org.springframework.dao.DataAccessException 層級結構包裝所有持久化異常,業務層僅處理 Spring 異常,不依賴具體框架。HibernateTemplate、JdbcTemplate、JpaTemplate 等封裝樣板代碼(資源獲取/釋放、異常轉換),讓開發者專注核心邏輯。Spring DAO 設計不僅整合了當前主流框架,更為未來擴展預留介面,體現框架級設計的前瞻性與穩健性。