freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

j2ee的ssh框架的搭建和性能優(yōu)化本科畢業(yè)論文-全文預(yù)覽

  

【正文】 。 這次頂崗實(shí)習(xí)中,無(wú)論是從技術(shù)上還是對(duì)環(huán)境的適應(yīng)能力上講,對(duì)我今后在企業(yè)中更好的發(fā)展 打下了一個(gè)良好的基礎(chǔ)。同時(shí)也對(duì)我的實(shí)踐應(yīng)用能力提出了更高的要求,開(kāi)拓了視野,拓展了知識(shí)面。 總結(jié): 性能口訣 使用雙向一對(duì)多關(guān)聯(lián),不使用單向一對(duì)多 靈活使用單向多對(duì)一關(guān)聯(lián) 不用一對(duì)一,用多對(duì)一取代 配置對(duì)象緩存,不使用集合緩存 保定電力職業(yè)技術(shù)學(xué)院頂 崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 21 一對(duì)多集合使用 Bag,多對(duì)多集合使用 Set 繼承類(lèi)使用顯式多態(tài) 表字段要少,表關(guān)聯(lián)不要怕多,有二級(jí)緩存撐腰 在頂崗實(shí)習(xí)中我懂得了, J2EE 開(kāi)發(fā) 的 新知識(shí) , 在企業(yè)應(yīng)用級(jí)項(xiàng)目開(kāi)發(fā)中需要注意的事項(xiàng)。 2. 對(duì)象緩存的優(yōu)劣取決于框架實(shí)現(xiàn)的水平, Hibernate 是目前已知對(duì)象緩存最強(qiáng)大 的開(kāi)源 ORM 3. 查詢(xún)緩存:粗顆粒度,針對(duì)查詢(xún)結(jié)果集,應(yīng)用于數(shù)據(jù)實(shí)時(shí)化要求不高的場(chǎng)合 十一。 Hibernate 二級(jí)緩存 著名的 n+1 問(wèn)題: from Child,然后在頁(yè)面上面顯示每個(gè)子類(lèi)的父類(lèi)信息,就會(huì)導(dǎo)致 n條對(duì) parent 表的查詢(xún): select * from parent where id = ? ....................... select * from parent where id = ? 解決方案 保定電力職業(yè)技術(shù)學(xué)院頂 崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 20 1. eager fetch 2. 二級(jí)緩存 九。 建議使用 Set 六。 性能口訣: 1. 一般情況下避免使用單向關(guān)聯(lián),盡量使用雙向關(guān)聯(lián) 2. 使用雙向關(guān)聯(lián), inverse=“true” 3. 在分層結(jié)構(gòu)中通過(guò) DAO 接口用 session 直接持久化對(duì)象,避免通過(guò)關(guān)聯(lián)關(guān)系進(jìn)行可達(dá)性持久化 三。屬性 性能調(diào)優(yōu) 一。 舉個(gè)例子,要批量刪除某表中的對(duì)象,如 “delete Account”,打出來(lái)的語(yǔ)句,會(huì)發(fā)現(xiàn) HIBERNATE 找出了所有 ACCOUNT 的 ID,再進(jìn)行刪除,這主要是為了維護(hù)二級(jí)緩存,這樣效率肯定高不了,在后續(xù)的版本中增加了 bulk delete/update,但這也無(wú)法解決緩存的維護(hù)問(wèn)題。樂(lè)觀鎖 (一般在應(yīng)用級(jí)別實(shí)現(xiàn) ),如在 HIBERNATE 中可以定義 VERSION 字段,顯然,如果有多個(gè)應(yīng)用操作數(shù)據(jù),且這些應(yīng)用不是用同一種樂(lè)觀鎖機(jī)制,則樂(lè)觀鎖會(huì)失效。 iv. 通過(guò)上面的說(shuō)明,我想你應(yīng)該知道如何去使用這兩個(gè)方法了。 ii. iterator 則可以利用二級(jí)緩存,對(duì)于一條查詢(xún)語(yǔ)句,它會(huì)先從數(shù)據(jù)庫(kù)中找出所有符合條件的記錄的 ID,再通過(guò) ID 去緩存找,對(duì)于緩存中沒(méi)有的記錄,再構(gòu)造語(yǔ)句從數(shù)據(jù)庫(kù)中查出 ,因此很容易知道,如果緩存中沒(méi)有任何符合條件的記錄,使用 iterator 會(huì)產(chǎn)生 N+1 條 SQL 語(yǔ)句 (N 為符合條件的記錄數(shù) ) iii. 通過(guò) iterator,配合緩存管理 API,在海量數(shù)據(jù)查詢(xún)中可以很好的解決內(nèi)存問(wèn)題,如 : while(()){ YouObject object = (YouObject)()。 、 延遲加載 a) 實(shí)體延遲加載 :通過(guò)使用動(dòng)態(tài)代理實(shí)現(xiàn) b) 集合延遲加載 :通過(guò)實(shí)現(xiàn)自有的 SET/LIST, HIBERNATE 提供了這方面的支持 c) 屬性延遲加載 : 、 方法選用 a) 完成同樣一件事, HIBERNATE 提供了可供選擇的一些方式,但具體使用什么方式,可能用性能 /代碼都會(huì)有影響。 b) SESSION 緩存 :在一個(gè) HIBERNATE SESSION 有效,這級(jí)緩存的可干預(yù)性不強(qiáng),大多于 HIBERNATE 自動(dòng)管理,但它提供清除緩存的方法,這在大批量增加 /更新操作是有效的。但是,查詢(xún)緩存在一個(gè)交 易系統(tǒng) (數(shù)據(jù)變更頻繁,查詢(xún)條件相同的機(jī)率并不大 )中可能會(huì)起反作用 :它會(huì)白白耗費(fèi)大量的系統(tǒng)資源但卻難以派上用場(chǎng)。 最常用的就是 defaultautowire=byName,這樣只寫(xiě) bean id= class= 就可以,系統(tǒng)會(huì)自動(dòng)查找和名字相關(guān)的 bean來(lái)裝配依賴(lài)注入的。 (例如:s:property value=foo/將要被 ${foo}代替 ). 1 ,freemarker 升級(jí)為 2 ognl 升級(jí)為 ( +) 3 根包下增加 文件,內(nèi)容為 template_update_delay=60000 4 增加 constant name=”” value=”false”/和constant name=”” value=”true”/ 5 把 中的默認(rèn)攔截器定義為 basicStack: package name=web extends=tilesdefault defaultinterceptorref name=basicStack / /package 執(zhí)行了這幾步之后,網(wǎng)站性能從 5 req/s 提升至 70 req/s,請(qǐng)求處理時(shí)間從 22s/req縮減至 2s/req! 保定電力職業(yè)技術(shù)學(xué)院頂 崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 13 Spring 優(yōu)化 defaultautowire=no //自動(dòng)裝配設(shè)為否,當(dāng)我們依賴(lài)注入的時(shí)候,用 set,get 方法,然后在 spring配置文件中手動(dòng)裝配 bean id= class= property name= ref bean= /property /bean 以上這是手動(dòng)裝配,還可以自動(dòng)裝配,這樣就不用寫(xiě) property屬性了, 直接: bean id= class= 就可以, 自動(dòng)裝配有幾個(gè)配置: ● byname : 試圖在容器中尋找和需要自動(dòng)裝配 的屬性名相同的 bean 或 id,如果沒(méi)有找到相應(yīng)的 bean,則這個(gè)屬性未被裝配上。 . session 在你需要的時(shí)候才創(chuàng)建 session 除非需要, Struts2 不會(huì)創(chuàng)建 sessions(比如 ,在你的攔截器 stack 中有 createSession 攔截器 )。 因?yàn)? 服務(wù)器會(huì)對(duì)這些靜態(tài)文件的請(qǐng)求進(jìn)行優(yōu)化 . freemark 載入模板 如果使用 freemarker 的話(huà),在 WEBINF 下的 classes 文件夾下創(chuàng)建一個(gè) 并且加入 template_update_delay=60000, 這個(gè)值是 freemarker 多久從硬盤(pán)重新載入模板,保定電力職業(yè)技術(shù)學(xué)院頂 崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 12 默認(rèn)情況下是 500ms, 因?yàn)闆](méi)有必要檢查是不是需要重新載入模板文件,所以最好把它設(shè)置為一個(gè)很大的數(shù)字。 5 SSH 性能的優(yōu)化 Struts 優(yōu)化 logging 和開(kāi)發(fā)模式 關(guān)閉 logging 和開(kāi)發(fā)模式 (devMode), devMode 是 在 中設(shè)置的, 關(guān)閉 logging 需要修改 文件,加入以下參數(shù) servlet initparam paramnamedebug/paramname paramvalue0/paramvalue /initparam initparam paramnamedetail/paramname paramvalue0/paramvalue /initparam /servlet . 攔截器 除非需要,否則不要使用攔截器 (interceptor). 如果一個(gè) Action 不需要全棧的攔截器的話(huà),就使用 basicStack 攔截器或移除不需要的攔截器。 業(yè)務(wù)流程的部署由 完成。 Spring 的 IoC 容器負(fù)責(zé)統(tǒng)一管理 Model 組件和 DAO 組件以及Spring 所提供的事務(wù)處理、緩沖連接池等服務(wù)組件。 } } 具體的 Hibernate 數(shù)據(jù)源、 session 工廠、事務(wù)管理、緩沖連接池等功能都由業(yè)務(wù)層的 Spring 容器提供。用戶(hù)信息表的部分結(jié)構(gòu)如表 1所 Hibernate 通過(guò)映射 (Mapping)文件將對(duì)象 (Object)與關(guān)系型數(shù)據(jù) (Relational)相關(guān)聯(lián),因此需要編寫(xiě)和數(shù)據(jù)庫(kù)表相對(duì)應(yīng)的 Java 持久化類(lèi)以及對(duì)應(yīng)的映射文件。該系統(tǒng)是為某通信公司運(yùn)營(yíng)部開(kāi)發(fā)的一個(gè)問(wèn)答式系統(tǒng),功能類(lèi)似于百度知道和新浪愛(ài)問(wèn)。 采用上述開(kāi)發(fā)模型,不僅實(shí)現(xiàn)了視圖、控制器與模型的徹底分離,而且還實(shí)現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實(shí)現(xiàn)為基本的 Java保定電力職業(yè)技術(shù)學(xué)院頂 崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 8 對(duì)象,然后編寫(xiě)基本的 DAO 接口,并給出 Hibernate 的 DAO 實(shí)現(xiàn),采用 Hibernate架構(gòu)實(shí)現(xiàn)的 DAO 類(lèi)來(lái)實(shí)現(xiàn) Java 類(lèi)與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪問(wèn),最后由 Spring 完成業(yè)務(wù)邏輯。它可以使用 HQL 語(yǔ)言或 SQL 語(yǔ)句兩種表達(dá)方式。在Hibernate 的啟動(dòng)的過(guò)程中, Configuration 類(lèi)的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建 SessionFactory 對(duì)象。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session 對(duì)象。但需要注意的是 Session 對(duì)象 是非線(xiàn)程安全的。通過(guò)這些接口,保定電力職業(yè)技術(shù)學(xué)院頂 崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 7 不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。 Hibernate 簡(jiǎn)介 Hibernate 是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì) JDBC 進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得 Java 程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。在 Spring 中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè) XML 文件里。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。當(dāng)應(yīng)用了 IoC,一個(gè)對(duì)象依賴(lài)的其它對(duì)象會(huì)通過(guò)被動(dòng)的方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴(lài)對(duì)象。完整 的 Spring 框架可以在一個(gè)大小只有 1MB 多的 JAR文件里發(fā)布。 業(yè)務(wù)邏輯控制器,負(fù)責(zé)處理用戶(hù)請(qǐng)求,本身不具備處理能力,而是調(diào)用 Model 來(lái)完成處理。 組件 Controller 組件有兩個(gè)部分組成 ——系統(tǒng)核心控制器,業(yè)務(wù)邏輯控制器。 JavaBean則封裝了底層的業(yè)務(wù)邏輯,包括數(shù)據(jù)庫(kù)訪問(wèn)等。 Struts 框架結(jié)構(gòu) 如 圖: 保定電力職業(yè)技術(shù)學(xué)院頂 崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 5 Struts對(duì) Model, View 和 Controller 都提供了對(duì)應(yīng)的組件。 Spring 是 一個(gè)輕量級(jí)的控制反轉(zhuǎn) (IoC)和面向切面 (AOP)的容器框架,它由 Rod Johnson 創(chuàng)建。 關(guān)鍵詞 :J2EE MVC Struts Spring Hibernate 大型企業(yè)級(jí) Web 應(yīng)用系統(tǒng)的開(kāi)發(fā)通常要求有一個(gè)良好的軟件架構(gòu)、便于協(xié)作開(kāi)發(fā)和擴(kuò)展升級(jí),而傳統(tǒng)的開(kāi)發(fā)模式不能很好 地滿(mǎn)足這些要求。并且,通過(guò)案例具體說(shuō)明了如何將這一方案應(yīng)用到實(shí)際項(xiàng)目中。 Struts對(duì) Model,View 和 Controller 都提供了對(duì)應(yīng)的組件。 Hibernate 是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì) JDBC 進(jìn)行了非常輕量級(jí)的對(duì)象封裝,可以應(yīng)用在任何使用 JDBC 的場(chǎng)合,可以在 Servlet/JSP 的 Web 應(yīng)用中使用,也可以在應(yīng)用 EJB 的 J2EE 架構(gòu)中取代 CMP,完成數(shù)據(jù)持久化的重任。 部分 由 ActionForm 和 JavaBean 組成,其中 ActionForm 用于封裝用戶(hù)的請(qǐng)求參數(shù),封裝成 ActionForm對(duì)象,該對(duì)象被 ActionServlet轉(zhuǎn)發(fā)給 Action, Action根據(jù) ActionForm里面的請(qǐng)求參數(shù)處理用戶(hù)的請(qǐng)求。對(duì)應(yīng)上圖的 JSP 部分。該控制器負(fù)責(zé)攔截所有的 HTTP請(qǐng)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1