版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
長江大學計算機科學學院碩士研究生作業(yè)簿年級計算機科學S151專業(yè)計算機科學與技術課程名稱計算機新技術專題姓名熊魏交作業(yè)時間2023年10月8日基于SSM整合框架的快速開發(fā)技術研究熊魏長江大學計算機科學學院S151班學號:2023713901引言框架,即framework。其實就是某種應用的半成品,把不同應用程序中有共性的一些東西抽取出來,做成一個半成品程序,這樣的半成品就是所謂的程序框架。軟件系統(tǒng)開展到今天已經(jīng)很復雜了,特別是效勞器端軟件,涉及到的知識、內(nèi)容、問題太多,在某些方面使用別人成熟的框架,就相當于讓別人幫你完成一些根底工作。你只需要集中精力,完成系統(tǒng)的業(yè)務邏輯設計,這樣每次開發(fā)就不用白手起家,而是可以在這個根底上開始搭建。使用框架的最大好處:減少重復開發(fā)工作量、縮短開發(fā)時間、降低開發(fā)本錢,同時,還有其它的好處,如:使程序設計更合理,程序運行更穩(wěn)定等?;谶@些原因,根本上現(xiàn)在在開發(fā)中,都會選用某些適宜的開發(fā)框架,來幫助快速高效的開發(fā)應用系統(tǒng)??蚣艿倪x擇,就是看哪個框架最適宜,從而減少開發(fā)的工作量,提高開發(fā)的效率和質量,并有效減少維護的工作量,最終到達節(jié)約綜合開發(fā)成,本獲取更多的收益。下面簡單了解一下SpringMVC+Spring+Mybatis三大框架。2.技術架構系統(tǒng)采用以spring為核心并整合了Springmvc和mybatis的3個輕量級框架技術的組合,即SSM整合框架。利用SSM整合框架可開發(fā)出分層、易擴展、易維護的企業(yè)級應用系統(tǒng)。,能夠極大地滿足系統(tǒng)的需求。SSM框架結構圖如圖2所示。隨著web應用的規(guī)模、復雜度不斷升級,對軟件架構的復用性、可靠性、可擴展性都提出了較高的要求。本課題采用了MVC這一軟件架構模式,該模式成功實現(xiàn)了動態(tài)的程序設計,簡化了后續(xù)對程序的修改以及擴展,使局部程序的重復利用成為可能。此外,此模式簡化了應用程序的復雜度,使程序結構更直觀?;贛VC架構模式,本系統(tǒng)采用SSM框架,即Struct2,spring3.0,mybatis框架組合,采用此框架技術可以提高開發(fā)效率、降低程序的復雜度。圖1SSM框架結構圖圖1SSM框架結構圖3MVC設計模式MVC設計模式[1]是一種目前廣泛流行的軟件設計模式,它把一個應用的各流程按照Model〔模型〕、View〔視圖〕、Controller〔控制器〕的方式進行別離。本系統(tǒng)所采用的SSM整合框架就是根據(jù)MVC設計模式的根底上開展起來,其中Struts2就是采用MVC模式建立起來的框架技術,而Struts2正是需要與spring、Mybatis進行無縫的集成,才能真正發(fā)揮MVC模式的作用。圖2MVC設計模式的工作原理圖2MVC設計模式的工作原理如圖1所示MVC設計模式的工作原理View局部即是應用程序的用戶界面,用戶通過View層發(fā)送請求提交到Controller層;Controller層接受請求根據(jù)具體需求調(diào)用Model層來處理,再根據(jù)Model層調(diào)用回來的結果進行跳轉??芍狢ontroller層在整個流程中起到了橋梁的作用,控制數(shù)據(jù)的流向;而Model層負責業(yè)務邏輯的處理和數(shù)據(jù)庫訪問。4SpringMVC技術研究SpringWebMVC是一種基于Java的實現(xiàn)了WebMVC設計模式的請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基于請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發(fā),SpringWebMVC也是要簡化我們?nèi)粘eb開發(fā)的。SpringWebMVC也是效勞到工作者模式的實現(xiàn),但進行可優(yōu)化。前端控制器是DispatcherServlet;應用控制器其實拆為處理器映射器(HandlerMapping)進行處理器管理和視圖解析器(ViewResolver)進行視圖管理;頁面控制器/動作/處理器為Controller接口〔僅包含ModelAndViewhandleRequest(request,response)
方法〕的實現(xiàn)〔也可以是任何的POJO類〕;支持本地化〔Locale〕解析、主題〔Theme〕解析及文件上傳等;提供了非常靈活的數(shù)據(jù)驗證、格式化和數(shù)據(jù)綁定機制;提供了強大的約定大于配置〔慣例優(yōu)先原那么〕的契約式編程支持。SpringWebMVC框架也是一個基于請求驅動的Web框架,并且也使用了前端控制器模式來進行設計,再根據(jù)請求映射規(guī)那么分發(fā)給相應的頁面控制器〔動作/處理器〕進行處理。首先讓我們整體看一下SpringWebMVC處理請求的流程如圖3所示:圖圖3SpringMVC處理流程具體執(zhí)行步驟如下:1、首先用戶發(fā)送請求————>前端控制器,前端控制器根據(jù)請求信息〔如URL〕來決定選擇哪一個頁面控制器進行處理并把請求委托給它,即以前的控制器的控制邏輯局部;圖3中的1、2步驟;2、頁面控制器接收到請求后,進行功能處理,首先需要收集和綁定請求參數(shù)到一個對象,這個對象在SpringWebMVC中叫命令對象,并進行驗證,然后將命令對象委托給業(yè)務對象進行處理;處理完畢后返回一個ModelAndView〔模型數(shù)據(jù)和邏輯視圖名〕;圖3中的3、4、5步驟;3、前端控制器收回控制權,然后根據(jù)返回的邏輯視圖名,選擇相應的視圖進行渲染,并把模型數(shù)據(jù)傳入以便視圖渲染;圖3中的步驟6、7;4、前端控制器再次收回控制權,將響應返回給用戶,圖3中的步驟8;至此整個結束。5Spring技術研究Spring是一個開源框架,是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)立的??蚣艿闹饕獌?yōu)勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為J2EE應用程序開發(fā)提供集成的框架。Spring框架是一個分層架構,由6個定義良好的模塊組成。Spring模塊構建在核心容器之上,核心容器定義了創(chuàng)立、配置和管理bean的方式。圖4Spring框架架構圖4Spring框架架構其核心模塊為IOC容器和AOP。4.1IOC〔InversionofControl控制反轉,又名依賴注入〕IOC即依賴注入,利用java里的反射機制在運行時動態(tài)的去創(chuàng)立、調(diào)用對象,Spring框架就是在運行的時候,根據(jù)Spring的applicationContext.xml配置文件來動態(tài)的創(chuàng)立對象并調(diào)用對象的方法的,所以使用Spring框架后不需要用new方法創(chuàng)立而是通過框架自動產(chǎn)生一個對象,只需要在xml文件中對bean進行定義。Spring開展到3.0后,不需要在xml文件中逐個定義bean對象,只需在調(diào)用的文件中使用@Autowired來聲明所調(diào)用的對象即可,使開發(fā)更加簡潔方便。4.2AOP〔Aspect-OrientedProgramming,面向方面編程〕AOP即面向切面編程,其原理是利用代理的設計模式,未使用Spring時,開發(fā)人員需要編寫大量的代碼來實現(xiàn)AOP,現(xiàn)在有了Spring對AOP的支持,不僅減輕了開發(fā)的工作量提高了開發(fā)的效率,也增強了程序的可靠性。本系統(tǒng)中Spring的AOP主要用于對事務的管理。Spring框架主要用于降低系統(tǒng)模塊之間的耦合度。其主要技術包括控制反轉〔IOC〕和面向切面編程〔AOP〕兩大方面。Spring降低耦合度的功能主要通過IOC來實現(xiàn),IOC是Spring框架的核心,其原理可以理解為程序的所有組件都是被動的,初始化和調(diào)用都有容器〔Spring〕的負責。另外Spring提供了AOP技術,利用AOP可以對業(yè)務邏輯的各個局部進行隔離,如:日志記錄、事務處理等,從而使得業(yè)務邏輯各局部的耦合度降低,提高程序的可重用性和開發(fā)效率。4.3spring的主要特性?!?〕降低組件之間的耦合度,實現(xiàn)軟件各層之間的解耦?!?〕可以使用容器提供的眾多效勞,如:事務管理效勞、消息效勞、JMS效勞、持久化效勞等等?!?〕容器提供單例模式支持,開發(fā)人員不再需要自己編寫實現(xiàn)代碼?!?〕容器提供了AOP技術,利用它很容易實現(xiàn)如權限攔截,運行期監(jiān)控等功能?!?〕容器提供的眾多輔作類,使用這些類能夠加快應用的開發(fā),如:JdbcTemplate、HibernateTemplate.〔6〕對主流的應用框架提供了集成支持。6Hibernate與Mybatis技術研究MyBatis是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQLMaps和DataAccessObjects〔DAO〕。MyBatis是支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設置以及結果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJOs〔PlainOldJavaObjects,普通的Java對象〕映射成數(shù)據(jù)庫中的記錄。每個MyBatis應用程序主要都是使用SqlSessionFactory實例的,一個SqlSessionFactory實例可以通過SqlSessionFactoryBuilder獲得。SqlSessionFactoryBuilder可以從一個xml配置文件或者一個預定義的配置類的實例獲得。用xml文件構建SqlSessionFactory實例是非常簡單的事情。推薦在這個配置中使用類路徑資源〔classpathresource),但你可以使用任何Reader實例,包括用文件路徑或file://開頭的url創(chuàng)立的實例。MyBatis有一個實用類----Resources,它有很多方法,可以方便地從類路徑及其它位置加載資源。6.1功能架構Mybatis的功能架構分為三層,如圖5所示:圖4Mybatis架構圖4Mybatis架構(1)API接口層:提供應外部使用的接口API,開發(fā)人員通過這些本地API來操縱數(shù)據(jù)庫。接口層一接收到調(diào)用請求就會調(diào)用數(shù)據(jù)處理層來完成具體的數(shù)據(jù)處理。(2)數(shù)據(jù)處理層:負責具體的SQL查找、SQL解析、SQL執(zhí)行和執(zhí)行結果映射處理等。它主要的目的是根據(jù)調(diào)用的請求完成一次數(shù)據(jù)庫操作。(3)根底支撐層:負責最根底的功能支撐,包括連接管理、事務管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來作為最根底的組件。為上層的數(shù)據(jù)處理層提供最根底的支撐。6.2工作流程(1)加載配置:配置來源于兩個地方,一處是配置文件,一處是Java代碼的注解,將SQL的配置信息加載成為一個個MappedStatement對象〔包括了傳入?yún)?shù)映射配置、執(zhí)行的SQL語句、結果映射配置〕,存儲在內(nèi)存中。(2)SQL解析:當API接口層接收到調(diào)用請求時,會接收到傳入SQL的ID和傳入對象〔可以是Map、JavaBean或者根本數(shù)據(jù)類型〕,Mybatis會根據(jù)SQL的ID找到對應的MappedStatement,然后根據(jù)傳入?yún)?shù)對象對MappedStatement進行解析,解析后可以得到最終要執(zhí)行的SQL語句和參數(shù)?!?〕SQL執(zhí)行:將最終得到的SQL和參數(shù)拿到數(shù)據(jù)庫進行執(zhí)行,得到操作數(shù)據(jù)庫的結果。(4)結果映射:將操作數(shù)據(jù)庫的結果按照映射的配置進行轉換,可以轉換成HashMap、JavaBean或者根本數(shù)據(jù)類型,并將最終結果返回。6.3動態(tài)SQLMyBatis最強大的特性之一就是它的動態(tài)語句功能。如果您以前有使用JDBC或者類似框架的經(jīng)歷,您就會明白把SQL語句條件連接在一起是多么的痛苦,要確保不能忘記空格或者不要在columns列后面省略一個逗號等。動態(tài)語句能夠完全解決掉這些痛苦。盡管與動態(tài)SQL一起工作不是在開一個party,但是MyBatis確實能通過在任何映射SQL語句中使用強大的動態(tài)SQL來改良這些狀況。動態(tài)SQL元素對于任何使用過JSTL或者類似于XML之類的文本處理器的人來說,都是非常熟悉的。在上一版本中,需要了解和學習非常多的元素,但在MyBatis3中有了許多的改良,現(xiàn)在只剩下差不多二分之一的元素。MyBatis使用了基于強大的OGNL表達式來消除了大局部元素。MyBatis是一個可以自定義SQL、存儲過程和高級映射的持久層框架。只使用簡單的XML和注解來配置和映射根本數(shù)據(jù)類型、MAP接口和POJO〔簡單的JAVA對象〕到數(shù)據(jù)庫記錄。相比另一流行的持久層框架Hibernate,MyBatis是一種“半自動化〞的ORM〔對象關系映射〕實現(xiàn),可以進行更為細致的SQL優(yōu)化減少查詢字段。因為本系統(tǒng)主要是對數(shù)據(jù)庫的數(shù)據(jù)進行處理,而且數(shù)據(jù)量會比擬大,結構比擬穩(wěn)定,因此對SQL語句應進行更高度的優(yōu)化,所以本系統(tǒng)選擇MyBatis作為數(shù)據(jù)庫持久層框架。相對Hibernate的全自動化,Mybatis是半自動化的ORM框架,雖然不如全自動化更節(jié)省開發(fā)人員時間,但是對于對性能要求較高的系統(tǒng),Mybatis可以對SQL語句自由進行優(yōu)化,而且現(xiàn)在有MybatisGenerateCode等插件工具可以實現(xiàn)自動生成實體類和根本的select,insert,delete及update語句。減少了Mybatis與Hibernate在開發(fā)復雜度上面差距。表1是使用zakisoft工具對Hibernate和Mybatis的執(zhí)行效率進行的測試數(shù)據(jù),其中執(zhí)行時間為平均每條數(shù)據(jù)的執(zhí)行時間,insert測試數(shù)據(jù)為10000條,select、delete、update每次測試均為隨機選擇、刪除、更新一條數(shù)據(jù),執(zhí)行次數(shù)100次。根據(jù)以上調(diào)研及測試,綜合考慮,本系統(tǒng)采用Mybatis框架。7.管理員及權限模塊實現(xiàn)系統(tǒng)建立初期,只有超級管理員一個角色和用戶,超級管理員可以創(chuàng)立其他角色,并為角色分配不同的權限,例如:web菜單維護角色、新聞內(nèi)容管理角色、web布局管理角色以及文件管理等角色。然后創(chuàng)立web智能管理系統(tǒng)的后臺管理員用戶,每個用戶有其對應的權限角色。例如擁有菜單維護的權限的用戶,可以創(chuàng)立前臺網(wǎng)站菜單并分配該菜單對應的主頁。不同角色的管理員擁有不同的權限,在很大程度上保證了前臺web系統(tǒng)的平安性。7框架組合經(jīng)過對各個框架的研究,系統(tǒng)采用SSM框架組合,分別取Springmvc、spring3.0、Mybatis各框架中優(yōu)秀模塊進行組合,實現(xiàn)MVC架構模式。取Springmvc中的Action層與JSP頁面之間的交互響應、攔截器,過濾器等功能作為view層和controller層;Mybatis作為model層,負責實例、JDBC連接以及數(shù)據(jù)持久層的功能;Spring作為一個輕量級的框架,采用其核心模塊IOC、AOP、Test,其中,IOC依賴翻轉用來連接各個層之間對象,簡化各個對象之間調(diào)用;由于基于反射及代理模式的面向切面編程開銷比擬大,本系統(tǒng)中只用來進行事務管理,負責事務的回滾機制,Spring的Test機制使得測試變得不再復雜,可以采用非容器依賴的編程方式進行大局部測試工作,此外Spring還擔當著MVC各個層之間的無縫連接工作,否那么即使各個框架都很優(yōu)秀也無法發(fā)揮出其最大的作用。在SSM整合框架中,每一個框架都發(fā)揮著自己最擅長的方面:Springmvc注重于降低表現(xiàn)層與邏輯層的耦合度,在視圖層和控制層發(fā)揮作用;Spring作為整個框架的核心局部,起到了橋梁的作用,對業(yè)務層的層次深化,在業(yè)務層通過其IOC技術的對象依賴注入和AOP技術的事務別離,更深層次的降低了耦合程度;MyBatis框架主要負責Java對象和關系數(shù)據(jù)庫之間的映射,在數(shù)據(jù)持久層上提供數(shù)據(jù)的訪問。通過應用SSM整合框架,可以將整個系統(tǒng)開發(fā)的結構大致分為如圖2所示。圖6SSM框架結構圖6SSM框架結構3.1框架組合實現(xiàn)通過web.xml,Structs.xml,applicationContext.xml,mybatis-config.xml這4個配置文件搭建web系統(tǒng)的整體框架,使之符合MVC架構模式。web.xml文件中通過context-param配置了Spring的上下文位置,并通過listener配置,通知容器加載Spring及Struct2的配置文件。Structs.xml主要是對頁面提交的請求以及Action返回的頁面進行對應。applicationContext.xml是Spring的配置文件,其中<context:component-scanbase-package=〞ject〞/>,可以實現(xiàn)使用annotation自動注冊bean,并檢查@Required,@Autowired的屬性是否已經(jīng)被注入。使用AOP定義了事務,除了以get,find,select方法名開頭的方法外,其他service層的方法均有回滾機制,保證了事務的原子性、一致性、持久性。此外還配置了mybatis文件位置以及數(shù)據(jù)庫的相關信息,將業(yè)務層和數(shù)據(jù)層別離并聯(lián)系起來。mybatis-config.xml文件中配置了MAPPER的加載方式,本系統(tǒng)中采用非懶漢式加載,即在系統(tǒng)初始化時加載所有的MAPPER文件,防止出現(xiàn)初始化并發(fā)問題。經(jīng)過編寫各配置文件組合3個框架,完成了系統(tǒng)的整體架構的搭建。SSM框架的組合分別是Springmvc、Spring3.0、MyBatis,三者組合實現(xiàn)MVC架構模式。Springmvc的主要功能是使用action層與JSP頁面進行交互。Mybatis是半自動化的ORM框架,負責數(shù)據(jù)持久層的功能,可以對SQL語句進行自動優(yōu)化,并且可以使用插件實現(xiàn)自動生成實體類及根本的語句。Spring核心模塊IOC依賴反轉各個層之間的對象,簡化對象的調(diào)用。SSM框架在Web應用系統(tǒng)開發(fā)中具有以下優(yōu)勢:〔1〕系統(tǒng)開發(fā)效率提升??蚣芸梢蕴峁└咝У慕M件和視圖處理,而且以配置文件的方式定義程序邏輯。需求改變僅需修改控制邏輯的配置文件,無需關心底層框架的實現(xiàn),從而提高系統(tǒng)開發(fā)效率?!?〕模塊間相互獨立。SSM框架具有“低耦合高內(nèi)聚〞的特點。設計人員可以按功能將系統(tǒng)劃分為不同的功能模塊,模塊之間相互獨立,每個模塊的修改不影響其他模塊?!?〕角色別離。框架為開發(fā)者提供不同的接口,前端頁面設計人員只需關注JSP頁面的設計,后臺邏輯開發(fā)者對業(yè)務邏輯開發(fā)程序。前端和后臺的人員相互獨立,互不影響。〔4〕縮短開發(fā)周期,降低工程開發(fā)本錢??蚣芸梢赃m用于各種類型開發(fā)人員協(xié)同工作,降低了對開發(fā)人員知識和技能的要求,加快了開發(fā)速度。8結束語文章結合高校工程管理的特點,提出采用Strut2、Spring、Mybatis三者整合框架SSM的設計思想,設
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度公寓樓租賃合同模板(含裝修設計、施工及家具家電配置)3篇
- 二零二五年度熱處理廢棄物處理與環(huán)保合同2篇
- 二零二五年度新能源科技公司股份轉讓合同3篇
- 二零二五年度車輛租賃平臺開發(fā)與運營合同3篇
- 2025年度農(nóng)村水井承包合同與水資源管理信息化建設協(xié)議
- 2025年度年度電子科技公司轉讓協(xié)議書3篇
- 2025解除買賣合同的通知書
- 2025年度離婚后房產(chǎn)分割及使用權協(xié)議3篇
- 2025年度低壓供用電設備節(jié)能改造與升級合同3篇
- 二零二五年度養(yǎng)生館綠色環(huán)保合作合同協(xié)議3篇
- 2025山東濰坊光明電力服務限公司招聘142人管理單位筆試遴選500模擬題附帶答案詳解
- 《診斷教學胸腔積液》課件
- DB32T 3292-2017 大跨徑橋梁鋼橋面環(huán)氧瀝青混凝土鋪裝養(yǎng)護技術規(guī)程
- 2023-2024學年新疆吐魯番市高二上學期期末生物試題(解析版)
- 《MATLAB編程及應用》全套教學課件
- 人教版八年級上冊數(shù)學期末考試試卷及答案
- 配電箱巡檢表
- 網(wǎng)頁設計與制作案例實戰(zhàn)教程課件 第13章 綜合實戰(zhàn)案例
- 子長市長征文化運動公園項目社會穩(wěn)定風險評估報告
- 形容詞副詞(專項訓練)-2023年中考英語二輪復習
- 2024人力行政年終總結
評論
0/150
提交評論