javaee期末知識點(diǎn)_第1頁
javaee期末知識點(diǎn)_第2頁
javaee期末知識點(diǎn)_第3頁
javaee期末知識點(diǎn)_第4頁
javaee期末知識點(diǎn)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、hibernate工作原理及為什么要用?1 .讀取并解析hibernate.cfg.xml配置文件2 .讀取并解析映射信息3 .創(chuàng)建 sessionfactory4 .打開 sesssion5 .創(chuàng)建事務(wù)transation6 .持久化操作7 .提交事務(wù)8 .關(guān)閉 session9 .關(guān)閉 sesstionfactoryhibernate 是基于 orm對象關(guān)系映射為什么要用:1. 對jdbc訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。2. hibernate是一個基于jdbc的主流持久化框架,是一個優(yōu)秀的 orm實(shí)現(xiàn)。簡化dao 層的編碼工作3. hibernate使用j

2、ava反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。4. hibernate的性能好,是個輕量級框架。映射的靈活性出色。支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。struts2流程如下:1、客戶端瀏覽器發(fā)出http請求。2、根據(jù) web.xml配置,該請求被 filterdispatcher接收。3、根據(jù)struts.xml配置,找到需要調(diào)用的 action類和方法, 并通過ioc方式,將值注 入名a aciton。4、action調(diào)用業(yè)務(wù)邏輯組件處理業(yè)務(wù)邏輯,包含表單驗(yàn)證。5、action執(zhí)行完畢,根據(jù) struts.xml中的配置找到對應(yīng)的返回結(jié)果result,并跳轉(zhuǎn)到相應(yīng)頁面。6

3、、返回http響應(yīng)到客戶端瀏覽器。struts 2常用標(biāo)簽:/用于分支控制、組合使用;降集合迭代輸出包含一個jsp頁面/servlet的輸出為其他標(biāo)簽提供參數(shù)struts的validate框架是如何驗(yàn)證的?在struts 配置文件中配置具體的錯誤提示,在 formbean中的validate。 方法具體調(diào) 用。spring兩大功能?控制反轉(zhuǎn):就是由容器控制程序之間的(依賴)關(guān)系,而非傳統(tǒng)實(shí)現(xiàn)中,由程序代碼直 接操控。依賴注入:組件之間的依賴關(guān)系由容器在運(yùn)行期決定,由容器動態(tài)的將某種依賴關(guān)系注入到組件之中。ioc 和 aop控制反轉(zhuǎn)模式,不創(chuàng)建對象,但是描述創(chuàng)建它們的方式。在代碼中不直接與對象和

4、服務(wù) 連接,但在配置文件中描述哪一個組件需要哪一項(xiàng)服務(wù)。容器負(fù)責(zé)將這些聯(lián)系在一起。 面向方面的編程面向方面的編程(aop)是通過預(yù)編譯方式和運(yùn)行期動態(tài)代理,實(shí)現(xiàn)再不修改源代碼的 情況下給程序動態(tài)統(tǒng)一添加功能的一種技術(shù)。它允許程序員對橫切關(guān)注點(diǎn)或橫切典型的職責(zé)分界線的行為(例如日志和事務(wù)管理)進(jìn)行模塊化。aop的核心構(gòu)造是方面,它將那些影響多個類的行為封裝到可重用的模塊中。aop和ioc是補(bǔ)充性的技術(shù),它們都運(yùn)用模塊化方式解決企業(yè)應(yīng)用程序開發(fā)中的復(fù) 雜問題。在典型的面向?qū)ο箝_發(fā)方式中,可能要將日志記錄語句放在所有方法和java類中才能實(shí)現(xiàn)日志功能。在aop方式中,可以反過來將日志服務(wù)模塊化,并以

5、聲明的方式將它們應(yīng)用到需要日志的組件上。當(dāng)然,優(yōu)勢就是java類不需要知道日志服務(wù)的存在,也不需要考慮相關(guān)的代碼。所以,用 spring aop編寫的應(yīng)用程序代碼是松散耦合的。aop的功能完全集成到了spring事務(wù)管理、日志和其他各種特性的上下文中。簡述對ioc的理解?spring實(shí)現(xiàn)di的幾種方式?ioc是一種設(shè)計模式,它反轉(zhuǎn)的是依賴對象的獲取方式(注入和非注入)。可以把ioc模式看做是工廠模式的升華,認(rèn)為ioc就是一個大工廠,只不過這個大工廠里要生成的對象都 是在xml文件中給出定義的,然后利用java的反射機(jī)制,根據(jù)xml中給出的類名生成相應(yīng)的對象。從實(shí)現(xiàn)來看,ioc是把以前在工廠方法

6、里寫死的對象生成語句,改變?yōu)橛蓌ml文件來定義,也就是 把 工廠”和對象生成”這兩者獨(dú)立分隔開來,目的就是提高靈活性和 可維護(hù)性。1 .設(shè)置注入(通過set方法為目標(biāo)bean注入屬性)2 .構(gòu)造注入(利用構(gòu)造函數(shù)來設(shè)置)hibernate對象的三種狀態(tài)并舉例說明瞬態(tài)、游離態(tài)和持久態(tài),三種狀態(tài)轉(zhuǎn)化的方法都是通過sessio冰調(diào)用1 .瞬時狀態(tài):通過session的save ()和saveorupdate ()方法可以把一個瞬時對象與數(shù)據(jù)庫相關(guān)聯(lián), 并把瞬時對象攜帶的信息通過配置文件所做的映射插入到數(shù)據(jù)庫中,這個瞬時對象就成了持久化對象,擁有和數(shù)據(jù)庫記錄相同的id標(biāo)示瞬時對象的特點(diǎn)是:(1)不和s

7、ession實(shí)例關(guān)聯(lián)(2)在數(shù)據(jù)庫中沒有和瞬時對象關(guān)聯(lián)的記錄2 .持久化狀態(tài)持久對象總是與 session和transaction相關(guān)聯(lián),在一個 session中,對持久對象的改變 不會馬上對數(shù)據(jù)庫進(jìn)行變更,而必須在transaction終止,也就是執(zhí)行 commit ()之后,才在數(shù)據(jù)庫中真正運(yùn)行 sql進(jìn)行變更,持久對象的狀態(tài)才會與數(shù)據(jù)庫進(jìn)行同步使用find () , get 0 , load ()和iterater ()等方法查詢到得數(shù)據(jù)對象,都是持久化 對象;如果一個瞬時對象被持久對象引用,則該對象也會自動變?yōu)槌志脤ο?。如果使用delete ()方法,它就會變?yōu)樗矔r對象;當(dāng)一個 ses

8、sion執(zhí)行close ()或 clear ()、evict ()之后,持久對象就會變?yōu)橥泄軐ο?。持久對象的特點(diǎn):(1)和session實(shí)例關(guān)聯(lián)(2)在數(shù)據(jù)庫中有和持久對象關(guān)聯(lián)的記錄ajax功能異步交互、動態(tài)更新 web頁面(數(shù)據(jù)驗(yàn)證、按需取數(shù)據(jù)、自動更新頁面)無刷新機(jī)制spring bean作用域有以下5個singleton:單例模式,當(dāng)spring創(chuàng)建applicationcontext容器的日候,spring會初始化所有 的該作用域?qū)嵗由蟣azy-init就可以避免預(yù)處理;prototype :原型模式,每次通過getbean獲取該bean就會新產(chǎn)生一個實(shí)例,創(chuàng)建后spring 將不

9、再對其管理;=下面是在web項(xiàng)目下才用到的request:每次請求都新產(chǎn)生一個實(shí)例,和 prototype不同就是創(chuàng)建后,接下來的管理,spring依然在監(jiān)聽session每次會話,同上global session:全局的 web 域, 類似于 servlet 中的 applicationspring 設(shè)計的核心是 org.springframework.beans 包,它的設(shè)計目標(biāo)是與 javabean 組件 一起使用。這個包通常不是由用戶直接使用,而是由服務(wù)器將其用作其他多數(shù)功能的底層中介。下一個最高級抽象是beanfactory接口,它是工廠設(shè)計模式的實(shí)現(xiàn),允許通過名稱創(chuàng)建和檢索對象。b

10、eanfactory也可以管理對象之間的關(guān)系。beanfactory支持兩個對象模型。口單態(tài)模型提供了具有特定名稱的對象的共享實(shí)例,可以在查詢時對其進(jìn)行檢索。singleton是默認(rèn)的也是最常用的對象模型。對于無狀態(tài)服務(wù)對象很理想??谠?模型確保每次檢索都會創(chuàng)建單獨(dú)的對象。在每個用戶都需要自己的對象時,原 型模型最適合。bean工廠的概念是 spring作為ioc容器的基礎(chǔ)。ioc將處理事情的責(zé)任從應(yīng)用程序 代碼轉(zhuǎn)移到框架。正如我將在下一個示例中演示的那樣,spring框架使用javabean屬性和配置數(shù)據(jù)來指出必須設(shè)置的依賴關(guān)系。beanfactory 接口因?yàn)?org.springfra

11、mework.beans.factory.beanfactory 是個簡單接口,所以可以針對各 種底層存儲方法實(shí)現(xiàn)。最常用的beanfactory定義是xmlbeanfactory ,它根據(jù) xml文件中的定義裝入 bean,如1#單1所示。清單 1. xmlbeanfactorybeanfactory factory = new xmlbeanfactory(new fileinputsteam(mybean.xml);在xml文件中定義的 bean是被消極加載的,這意味在需要bean之前,bean本身不會被初始化。要從beanfactory檢索bean,只需調(diào)用getbean()方法,傳入將要檢索的bean的名稱即可,如清單 2所示。清單 2. getbean()mybean mybean = (mybean) factory.getbean(mybean);每個bean的定義都可以是pojo (用類名和 javabean初始化屬性定義)或factorybean。factorybean接口為使用 spring框

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論