国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
組裝Struts Spring和Hibernate框架
摘要

請(qǐng)用一段簡(jiǎn)單的話描述該詞條,馬上添加摘要。

框架層次結(jié)構(gòu)層次分為四層:表現(xiàn)層、持久層、業(yè)務(wù)層、域?qū)ο髮?。每個(gè)框架分別負(fù)責(zé)一個(gè)層次的實(shí)現(xiàn),表現(xiàn)層我們使用Struts業(yè)務(wù)層使用Spring持久層使用Hibrenate。每層在應(yīng)用程序中都有明確的責(zé)任。每一應(yīng)用層彼此獨(dú)立且保持一致。這些框架層次在以一種松散耦合的方式彼此作用而不用管低層的技術(shù)細(xì)節(jié)。

Struts+Spring+Hibernate框架體系結(jié)構(gòu)圖

Struts是框架的表現(xiàn)層,Struts是對(duì)MVC構(gòu)架的具體實(shí)現(xiàn)。它提供了一種便利的方式,可以用于將模塊化的應(yīng)用程序清楚地分成邏輯、表示和數(shù)據(jù)。

組裝Struts Spring和Hibernate框架-2.1 Struts的MVC結(jié)構(gòu)

    

StrutsMVC三層結(jié)構(gòu)[3]:

視圖層:Struts采用JSP作為MVC的視圖。每一視圖都是采用了定制標(biāo)簽庫(kù)的JSP頁(yè)面,這些定制標(biāo)簽庫(kù)則由Struts框架提供。全部表單元素都是用定制標(biāo)簽編碼的,所以這些頁(yè)面能夠很方便地同控制器交互。每一個(gè)表單都通過(guò)映射JSPServlet的請(qǐng)求這一方式指向控制器特定入口點(diǎn)。

控制層:控制器就是Java Servlet,由Struts框架提供,負(fù)責(zé)視圖和模型之間的交互??刂破鞯拿總€(gè)入口點(diǎn)都由名為struts-config.xml的配置文件設(shè)置。該文件把來(lái)自視圖的請(qǐng)求映射為特定的Java類以進(jìn)行相應(yīng)的處理,控制器還指定下一個(gè)視圖的位置。

模型層:JavaBean就是模型的代表。對(duì)進(jìn)入控制器的每個(gè)入口點(diǎn)來(lái)說(shuō),Bean的作用是存儲(chǔ)從視圖獲取的信息,同時(shí)被稱為“動(dòng)作類”,一種Java類則被指定為對(duì)表單輸入采取行動(dòng)。動(dòng)作類(Action Class)實(shí)現(xiàn)了業(yè)務(wù)邏輯。

Struts MVC結(jié)構(gòu)圖

Struts是當(dāng)今流行的JSP Web框架。 Struts框架是一種基于Java的技術(shù),Web應(yīng)用程序開發(fā)人員通過(guò)它可充分利用面向?qū)ο笤O(shè)計(jì)、代碼重用以及“編寫一次、到處運(yùn)行”的優(yōu)點(diǎn)。Struts提供了一種創(chuàng)建具有良好可管理性的Web應(yīng)用框架,其中對(duì)應(yīng)用程序的顯示、表示和數(shù)據(jù)的后端代碼進(jìn)行了抽象。

Struts的優(yōu)點(diǎn)主要集中體現(xiàn)在如下[4]:

(1) Struts 將業(yè)務(wù)數(shù)據(jù)、頁(yè)面顯示、動(dòng)作處理進(jìn)行分離,有利于各部分的維護(hù)。

(2) Taglib Struts 的標(biāo)記庫(kù),其靈活運(yùn)用能大大提高開發(fā)效率。

(3) StrutsValicator可以幫助完成驗(yàn)證工作,避免重復(fù)編寫驗(yàn)證代碼工作,減少了開發(fā)工作量,實(shí)現(xiàn)驗(yàn)證代碼集中管理,其維護(hù)方便。

(4) 頁(yè)面轉(zhuǎn)發(fā)可以使系統(tǒng)的脈絡(luò)更加清晰,可以在很大程度上提高系統(tǒng)的維護(hù)性,將是今后的一個(gè)發(fā)展方向。

(5) 通過(guò)Struts 提供的ActionForm封裝web form中的元素,使重用web表單成為可能。

 (6) Struts 采用 Front Controller模式來(lái)實(shí)現(xiàn)動(dòng)作處理,讓所有的動(dòng)作請(qǐng)求都是經(jīng)過(guò)一個(gè)統(tǒng)一入口,然后進(jìn)行分發(fā)。該方式方便人們?cè)谌肟谥屑尤胍恍┤挚刂拼a的實(shí)現(xiàn),如安全控制、日志管理等。

下面是Struts在框架結(jié)構(gòu)中所負(fù)責(zé)的工作:

(1) 為用戶管理請(qǐng)求和響應(yīng);

(2) 提供一個(gè)控制器代理調(diào)用業(yè)務(wù)邏輯和其它上層處理;

(3) 處理從其它層擲出給一個(gè)Struts Action的異常;

(4) 為顯示提供一個(gè)模型;

(5) 執(zhí)行用戶接口驗(yàn)證。

Spring實(shí)現(xiàn)了反轉(zhuǎn)控制Inversion of Control)和面向方面編程(Achievement-Oriented Programming)。Spring框架的能實(shí)現(xiàn)應(yīng)用的分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件。在應(yīng)用中要使用的對(duì)象可以被一個(gè)簡(jiǎn)單的XML文件連在一起,這個(gè)XML文件含有到像事務(wù)管理器、對(duì)象工廠、包含業(yè)務(wù)邏輯的服務(wù)對(duì)象、和數(shù)據(jù)存取對(duì)象這些對(duì)象的引用。

組裝Struts Spring和Hibernate框架-3.1 Spring框架的體系結(jié)構(gòu)

    

Spring是框架的業(yè)務(wù)層,這個(gè)框架是一個(gè)分層架構(gòu),由 7 個(gè)定義良好的模塊組成。如圖3.3所示Spring體系結(jié)構(gòu)。

Spring 框架體系結(jié)構(gòu)

Spring 框架是一個(gè)分層架構(gòu),由 7 個(gè)定義良好的模塊組成。Spring 模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理 bean 的方式,其主要優(yōu)勢(shì)有如下幾點(diǎn):

(1) Spring能有效地組織你的中間層對(duì)象。

(2) Spring能消除在許多工程中常見(jiàn)的對(duì)Singleton的過(guò)多使用。

(3) 通過(guò)一種在不同應(yīng)用程序和項(xiàng)目間一致的方法來(lái)處理配置文件,消除各種自定義格式的屬性文件的需要,僅僅需要看看類的JavaBean屬性。反轉(zhuǎn)控制的使用幫助完成了這種簡(jiǎn)化。

(4) Spring能夠幫助我們真正意義上實(shí)現(xiàn)針對(duì)接口編程。

(5) Spring的設(shè)計(jì)會(huì)讓使用它創(chuàng)建的應(yīng)用盡可能少的依賴于它的APIs,在Spring應(yīng)用中的大多數(shù)業(yè)務(wù)對(duì)象沒(méi)有依賴于Spring

(6) 使用Spring構(gòu)建的應(yīng)用程序易于單元測(cè)試。

(7) Spring使EJB成為一個(gè)實(shí)現(xiàn)選擇,而不是必需的選擇。你可以用POJO或當(dāng)?shù)?/span>EJB來(lái)實(shí)現(xiàn)業(yè)務(wù)接口,卻不會(huì)影響到調(diào)用代碼。

(8) Spring能使用AOP提供聲明性事務(wù)管理,可以不直接操作JTA也能夠?qū)κ聞?wù)進(jìn)行管理。

(9) Spring為數(shù)據(jù)存取提供了一個(gè)一致的框架,不論是使用JDBC還是O/R mapping的產(chǎn)品。

(10) MVC Web框架,提供一種清晰,無(wú)侵略性MVC實(shí)現(xiàn)方式。

Spring業(yè)務(wù)層在框架中負(fù)責(zé)下面這些事情:

(1) 管理事務(wù);

(2) 預(yù)留和其它層交互的接口;

(3) 管理業(yè)務(wù)層對(duì)象之間的依賴;

(4) 增加在表現(xiàn)層和持久層之間的靈活性,使它們互不直接通訊;

(5) 從表現(xiàn)層中提供一個(gè)上下文給業(yè)務(wù)層獲得業(yè)務(wù)服務(wù);

(6) 管理從業(yè)務(wù)邏輯到持久層的實(shí)現(xiàn);

(7) 處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)驗(yàn)證;

Hibernate是一種ORM映射工具,它不僅提供了從Java類到數(shù)據(jù)表之間的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機(jī)制。相對(duì)于使用JDBCSQL來(lái)手工操作數(shù)據(jù)庫(kù),使用Hibernate,可以大大減少操作數(shù)據(jù)庫(kù)的工作量。Hibernate可以和多種Web服務(wù)器或者應(yīng)用服務(wù)器良好集成。

Hibernate框架的體系結(jié)構(gòu)圖如圖所示。

Hibernate的體系結(jié)構(gòu)圖

組裝Struts Spring和Hibernate框架-4.2 Hibernate框架的優(yōu)勢(shì)

    

Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序?qū)嵱?,也可以?/span>Servlet/JSPWeb應(yīng)用中使用,Hibernate還可以在應(yīng)用EJBJ2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。

Hibernate框架的優(yōu)勢(shì)有下面幾點(diǎn):

(1) Hibernate具有可擴(kuò)展性;

(2) Hibernate既適用于獨(dú)立的Java程序,也適用于Java Web應(yīng)用,而且還可以在J2EE架構(gòu)中取代CMP,完成持久化任務(wù),Hibernate能集成到會(huì)話EJB和基于BMP的實(shí)體EJB中;

(3) Hibernate可以和多種WEB服務(wù)器,應(yīng)用服務(wù)器良好集成,并且支持所有的數(shù)據(jù)庫(kù)服務(wù)器;

(4) Hibernate有詳細(xì)的參考文檔,使用方便,容易上手。

下面是Hibernate持久層在框架中所負(fù)責(zé)的工作:

(1) 查詢相關(guān)的信息成為對(duì)象。

Hibernate通過(guò)HQL的面向?qū)ο蟮牟樵冋Z(yǔ)言或者使用條件表達(dá)式API來(lái)做這個(gè)事情。HQL非常類似于SQL。只是把SQL里的tablecolumnsObject和它的fields代替;

(2) 保存、更新、刪除儲(chǔ)存在數(shù)據(jù)庫(kù)中的信息;

Hibernate這樣的高級(jí)“對(duì)象-關(guān)系”映射框架提供對(duì)大多數(shù)主流SQL數(shù)據(jù)庫(kù)的支持,它們支持“父/子”關(guān)系、事務(wù)處理、繼承和多態(tài)。

域?qū)ο髮?,也?/span>DAO訪問(wèn)層,它負(fù)責(zé)封裝底層的數(shù)據(jù)訪問(wèn)細(xì)節(jié),不僅可能使概念清晰,而且可以提高開發(fā)效率。

域?qū)ο髮又饕鰞杉拢?/span>

(1) 編寫相關(guān)接口: DAO類一般要使用Spring的聲明式事務(wù)機(jī)制,而聲明式事務(wù)機(jī)制是使用Spring AOP來(lái)實(shí)現(xiàn)的。Spring AOP默認(rèn)使用的Java動(dòng)態(tài)代理必須基于接口。本系統(tǒng)是面向接口編程;

(2)實(shí)現(xiàn)相關(guān)接口:在實(shí)現(xiàn)接口的同時(shí),需要繼承HibernateDaoSurpport類,這樣可以省去對(duì)SessionFactoryHibernateTemplate的處理。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SSH框架總結(jié)(框架分析+環(huán)境搭建+實(shí)例源碼下載)
Java及數(shù)據(jù)庫(kù)面試題 包含SSH,數(shù)據(jù)庫(kù)和Java基礎(chǔ)
盤點(diǎn)Java初學(xué)者如何理解Java三大框架!
面試Java實(shí)習(xí)生時(shí)的一些面試題
java面試⑥框架部分
Java高級(jí)程序員面試題
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服