[摘]Spring讓Hibernate使用者受益良多

linweihan1984發表於2007-10-16
Spring的輕量級的bean容器為業務物件(business objects)、DAO物件和資源(如:JDBC資料來源或者Hibernate SessionFactorie等)物件提供了IoC型別的裝配能力。Spring使用一個xml格式的應用配置檔案為開發者提供了一種通過解析定製的屬性檔案來手動管理單例項物件或者工廠物件的選擇性。由於Spring將非入侵性做為一個重要的目標,因此可以由Spring配置管理的bean物件均不需要依賴Spring自有的介面和類就可以通過它們的bean屬性完成配置。這個概念可以被應用到任何環境中,無論你開發的是一個J2EE的web應用還是一個桌面應用甚至只是一個applet都可以。

    在使用Hibernate的應用中, Spring的對DAO物件通常的事務管理特別應該引起關注。它的目的就是分離資料訪問和事務處理,使事務性業務物件不與任何特殊的資料訪問或者事務策略綁在一起,從而不影響業務物件的可複用性。這種劃分既可以經由事務模板(TransactionTemplate)用程式設計的方式實現,也可以經由面向方面(AOP)事務攔截器(TransactionTemplate)用宣告的方式實現。無論是本地的Hibernate / JDBC事務,還是JTA事務都支援物件外的事務策略,這對於本地的無狀態會話Bean(Stateless Session Beans)是一個非常有用的選擇。

    Spring的HibernateTemplate類提供了一個簡單的方式實現了Hibernate-based DAO物件而不必關心如何獲得Hibernate的Session例項,也不必關心多方參與的事務處理。無需使用try-catch塊,也無需進行事務檢查。一個簡單的Hibernate訪問方法就完全解決了些麻煩! 無論是在多個DAO介面還是在多方事務的情況下,Spring使得多種DAO物件無縫地協同工作。例如:某些DAO物件可能是基於plain JDBC的實現,更適合於經由Spring的JdbcTemplate來避免手動的異常處理。

      你可以單獨地使用許多Spring特性,因為Spring的所有物件都是設計成可複用的JavaBean物件的集合。也不要因為Spring可以提供一個完整的應該框架而氣餒!使用其他的Spring特性時,應用配置概念是一個附加的特性,並不是一個必須的特性。無論如何,當你要決定去構建一個象Spring這樣的內在的基礎架構的時候,在使用Spring的路途上沒有什麼範圍上的限制。

 

相關文章