struts:負責(zé)顯示層,是一個完美的MVC實現(xiàn),它調(diào)用業(yè)務(wù)層完成運算邏輯,業(yè)務(wù)層再調(diào)用持久層完成數(shù)據(jù)庫的讀寫。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),南岔企業(yè)網(wǎng)站建設(shè),南岔品牌網(wǎng)站建設(shè),網(wǎng)站定制,南岔網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,南岔網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
Hibernate:創(chuàng)建一系列的持久化類,將每個類的屬性與數(shù)據(jù)庫表的屬性一一對應(yīng)。
Spring:依賴注射和控制反轉(zhuǎn)。只要拿到一個實現(xiàn)了這個接口的類,就可以輕松的通過xml配置文件把實現(xiàn)類注射到調(diào)用接口的那個類里。所有類之間的這種依賴關(guān)系就完全通過配置文件的方式替代了。
Java Web應(yīng)用程序架構(gòu):Struts負責(zé)顯示層,Hibernate負責(zé)持久層,Spring負責(zé)中間的業(yè)務(wù)層。
另外,由于Spring使用的依賴注射以及AOP(面向方面編程),所以它的這種內(nèi)部模式非常優(yōu)秀,以至于Spring自己也實現(xiàn)了一個使用依賴注射的MVC框架,叫做Spring MVC,同時為了很好的處理事物,Spring集成了Hibernate,使事物管理從Hibernate的持久層提升到了業(yè)務(wù)層,使用更加方便和強大。
所謂的三層開發(fā)就是將系統(tǒng)的整個業(yè)務(wù)應(yīng)用劃分為“表示層-業(yè)務(wù)邏輯層-數(shù)據(jù)訪問層”
1、Struts
Struts的控制文件struts-config.xml、Action和Action Servlet實現(xiàn)MVC的控制器,JavaBean或者EJB完成MVC的模型部分,JSP頁面承擔(dān)MV的視圖組件,而且所有的控制邏輯都是有struts-config.xml配置文件來完成。
Struts2提供了豐富的攔截器實現(xiàn)
2、Hibernate
Hibernate是數(shù)據(jù)持久層的一個輕量級框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用
對象編程思維來操縱數(shù)據(jù)庫。提供了查詢獲取數(shù)據(jù)的方法,用面向?qū)ο蟮乃枷雭聿僮鲾?shù)據(jù)庫,節(jié)省開發(fā)處理數(shù)據(jù)的時間。
在物理數(shù)據(jù)庫之上利用一些配置文件如hibernate.cfg.xml、Action和Action文件、XML Mapping(映射文件)等來為應(yīng)用系統(tǒng)
提供數(shù)據(jù)持久化方面的服務(wù),同時達到將應(yīng)用系統(tǒng)的持久層與不同的物理數(shù)據(jù)庫系統(tǒng)相互隔離開的目的。
Hibernate的工作流程:
讀取并解析配置文件;
Configuration負責(zé)讀取并創(chuàng)建映射信息,創(chuàng)建session factory
SessionFactory負責(zé)創(chuàng)建session;
Transaction負責(zé)開啟事務(wù)Transaction;
Query負責(zé)執(zhí)行持久化操作;
Transaction負責(zé)提交事務(wù);
關(guān)閉session和session factory;
Hibernate中提供了兩級Cache,第一級別的緩存是Session級別緩存,它屬于事務(wù)范圍的緩存。由Hibernate管理,一般情況下無需進行干預(yù)。第二級別的緩存是Session Factory級別緩存,屬于進程范圍或群集范圍的緩存??梢赃M行配置和更改,并可以動態(tài)加載和卸載。
3、Spring
Spring:核心容器提供Spring框架的基本功能。核心容器主要組件是Bean Factory,它是工廠模式的實現(xiàn)。Bean Factory 使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實際的應(yīng)用程序代碼分開??刂品崔D(zhuǎn)即依賴注入是Spring的核心。對象間的某種依賴關(guān)系式由容器在運行期間注入調(diào)用者,控制程序間的關(guān)系的實現(xiàn)交給了外部容器來完成。
依賴注入存在2中實現(xiàn)方式:
1、設(shè)值注入即Set注入
2、構(gòu)造注入
總結(jié):
Struts 用于表示層,直接面向用戶,響應(yīng)用戶的請求,為顯示提供一個模型和一個控制器,并委派調(diào)用業(yè)務(wù)邏輯和其他上層處理等功能。
Spring 在事務(wù)管理和依賴注入方面的獨特能力,實現(xiàn)處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)校驗,以及提供與其他層進行相互作用的接口等。
Hibernate 是ORM(對象關(guān)系映射) 的實現(xiàn),利用它建立Java 對象模型的持久化對象,進而以面向?qū)ο蟮姆绞絹矸奖愕夭僮麝P(guān)系數(shù)據(jù)庫。
這樣Struts、Spring 和Hibernate 就能夠很好地封裝各個層次的程序,如在處理前臺表示層時就不會把事務(wù)邏輯和持久化邏輯摻雜進來,從而最大限度地實現(xiàn)各層的高內(nèi)聚低耦合目標。