Posted on 2007-09-11 17:07
匪客 閱讀(1994)
評論(1) 編輯 收藏 所屬分類:
開發技術
此文檔講述的內容適合于對
Spring MVC
和數據持久層
ORM
概念有一定基礎的開發者,著重于講述基于
Spring
框架基礎之上進行
Java
開發的其中一種技術解決方案,而不是講述相關技術的原理,想要了解技術原理內容請參考相關文檔資料。
?
現在,網絡上流傳的Spring+Struts+Hibernate用得非常火,幾乎成為很多對技術癡迷的人的技術架構標準,可是在我看來,也許是因為項目都不算大,人力也不夠多,這個技術架構太復雜了。從Spring本身來講,從MVC到數據操作,都可以不需要其他附加組件即可實現,并且結構清晰,使用簡單,功能還更加強大,本文講述的重點就是單獨使用Spring來建立一個簡易的開發框架。
?
首先說,為什么選擇Spring呢?大概在2003年的時候,Struts已經開始流行了,但是在學習Struts的時候感覺這個技術框架比原始的JSP+JavaBean的方式復雜了很多,后來2004年做新項目時在論壇上看到推薦Spring,下載一試,上手非常的容易,結構也很清晰,支持的功能也非常多,所以決定用它了(其實那時候對于依賴注入和AOP代理還不甚了解,也很少用到接口)。
在2001-2003年的時候都是自己封裝了JavaBean做為公共模塊來訪問數據庫的,后來ORM興起了,先是看了Hibernate的,3.0版還沒用出,還不支持存儲過程,因為那時候也做Delphi相關開發,用慣了SQL語句,始終覺得HQL這樣的東東增加了開發的復雜度和不可控制性,原生的復雜SQL語句無法使用,不喜歡。后來看到了iBATIS,經過試用,正是我所需要的,SQL語句配置簡單,基本不會破壞SQL語句的結構,這樣將SQL語句Copy到外部數據庫工具中進行調試也非常的方便,加上SQL語句可以使用很多的特定數據庫的函數,執行效率和簡潔性也非常好,修改了SQL又不需要重新編譯程序。
有網友說Hibernate支持多個數據庫移值啊,我認為這個就不僅僅是SQL語句的問題了,還有很多其他方面的因素,大多數項目都可以不用考慮。又有網友說Hibernate對于數據庫結構修改的影響比較小,這種情況影響的也不僅僅是幾句代碼的問題,涉及到界面表現、業務流程等很多重要方面,相對說來修改代碼倒是小Case了。
說完了上面的
ORM
組件,再說說
JDBC
,
Spring
的
JdbcTemplate
將我們常用的
JDBC
流程封裝起來,使用非常簡單,一般執行的
SQL
就是一句話,構造
SQL
隨著業務的復雜而復雜,并且也支持
PrepareStatement
的執行模式避免
SQL
注入漏洞發生,同樣具備完整的數據操作功能如查詢、更新、存儲過程、異常捕捉等等,經過幾年的使用比較,我認為輕型的項目使用
JdbcTemplate
是非常不錯的選擇。
由于能力所限,其中細節如有欠缺之處,請多多批評指正。
2.
參考資料
2 ?
Spring
官方網站:
http://www.springframework.org/
;
2 ?
Spring 2.0
中文參考手冊:
http://spring.jactiongroup.net/
;
2 ?
Apache Jakarta
官方網站:
http://jakarta.apache.org/
;
2 ?
JSTL
官方網站:
http://java.sun.com/products/jsp/jstl/
;
2 ?
Intellij IDEA
官方網站:
http://www.jetbrains.com/
;