一、SSH架構
Java SSH 為 Struts+Spring+Hibernate的一個內建架構,是目前較流行的一種Web應用程式開源架構。
http://struts.apache.org/ http://spring.io/ http://hibernate.org/內建SSH架構的系統從職責上分為四層:表示層、業務邏輯層、資料持久層和域子產品層,以幫助開發人員在短期内搭建結構清晰、可複用性好、維護友善的Web應用程式。其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts架構的模型部分,控制業務跳轉,利用Hibernate架構對持久層提供支援,Spring做管理,管理struts和hibernate。具體做法是:用面向對象的分析方法根據需求提出一些模型,将這些模型實作為基本的Java對象,然後編寫基本的DAO(Data Access Objects)接口,并給出Hibernate的DAO實作,采用Hibernate架構實作的DAO類來實作Java類與資料庫之間的轉換和通路,最後由Spring做管理,管理struts和hibernate。
Struts:主要是用來做表示層,也就所謂的界面,和使用者直接打交道,用來處理使用者的請求和請求後傳回給使用者的模型資料。 Struts對Model,View和Controller都提供了對應的元件。
Spring:業務層,是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器架構。
Hibernate:Hibernate 是一個開放源碼的 ORM 持久層架構。作為優秀的持久層架構實作,Hibernate 架構提供了強大、高性能的對象到關系型資料庫的持久化服務,開發人員可以使用面向對象的設計進行持久層開發。簡單的說,Hibernate 隻是一個将持久化類與資料庫表相映射的工具,每個持久化類執行個體均對應于資料庫表中的一個資料行而已。使用者隻需直接使用面向對象的方法操作此持久化類執行個體,即可完成對資料庫表資料的插入、删除、修改、讀取等操作。
推薦書籍:
《輕量級Java EE企業應用實戰(第4版):Struts 2+Spring 4+Hibernate整合開發(含CDCD光牒1張)》
作者:李剛
出版社:電子工業出版社
出版時間:2014-10-1
http://product.dangdang.com/23572565.html《經典Java EE企業應用實戰——基于WebLogic/JBoss的JSF+EJB 3+JPA整合開發》
出版時間:2014-12-1
http://product.dangdang.com/20928547.html《深入分析Java Web技術内幕(修訂版)》
作者:許令波著
出版時間:2014-8-1
http://product.dangdang.com/23538043.html《Java Web整合開發王者歸來(JSP+Servlet+Struts+Hibernate+Spring)(配CD光牒)》
作者:劉京華等編著
出版社:清華大學出版社
出版時間:2010-1-1
http://product.dangdang.com/20756351.html《Java Web整合開發實戰--基于Struts 2+Hibernate+Spring》
作者:賈蓓,鎮明敏,杜磊 編著
出版時間:2013-7-1
http://product.dangdang.com/23268958.html《架構探險——從零開始寫Java Web架構》
作者:黃勇著
出版時間:2015-8-1
http://product.dangdang.com/23760111.html http://my.oschina.net/huangyong/blog http://git.oschina.net/huangyong/smart-framework《深入淺出MySQL:資料庫開發、優化與管理維護(第2版)》
作者:唐漢明 翟振興 關寶軍 王洪權 黃潇 著
出版社:人民郵電出版社
出版時間:2014-1-1
http://product.dangdang.com/23399217.html《高性能MySQL(第3版)》
作者:【美】施瓦茨(Schwartz,B.)【美】紮伊采夫(Zaitsev,P.) 【美】特卡琴科(Tkachenko,V.) 著
出版時間:2013-5-1
http://product.dangdang.com/23214590.html二、SSI架構
Java SSI 為 Struts+Spring+Ibatis的一個內建架構,也是目前較流行的一種Web應用程式開源架構。
http://mybatis.github.io/ http://mybatis.github.io/mybatis-3/zh/index.html http://blog.mybatis.org/ https://github.com/mybatisiBATIS一詞來源于“internet”和“abatis”的組合,是一個由Clinton Begin在2002年發起的開放源代碼項目。于2010年6月16号被谷歌托管,改名為MyBatis。是一個基于SQL映射支援Java和·NET的持久層架構。
Struts2主要來源于webwork架構,與Struts1相比,在資料傳遞方面,Struts2提供了更加強大OGNL标簽功能,使其能夠通過在action中定義變量來直接與jsp頁面中的資料進行互相傳值,省去了Struts1中的formbean;而在跳轉控制方面,Struts2簡化了配置檔案的資訊量,使頁面和action之間的交換更加的簡潔和直覺,便于開發人員的管理。
Spring功能非常的強大,比如它的控制反轉/依賴注入機制,省去了我們自己書寫工廠模式的工作,實作類對我們将要用到控制類、業務邏輯類、資料通路類、以及JNDI或者JDBC資料源的托管;Spring對AOP支援使我們在使用者chmod.html' target='_blank'>權限控制、事務處理方面節省了很多工作量;
iBatis則是一種輕量級的OR Mapping架構,與Hibernate相比,iBatis提供了半自動化對象關系 映射的實作,開發人員需要編寫具體的sql語句,為系統設計提供了更大的自由空間,為sql語句優化提供了便利。
三、Hibernate與 MyBatis的比較
http://blog.csdn.net/firejuly/article/details/8190229ehcache+spring+struts2+hpsockes+hadoop+hbase