基于SSM整合框架的快速開(kāi)發(fā)技術(shù)研究_第1頁(yè)
基于SSM整合框架的快速開(kāi)發(fā)技術(shù)研究_第2頁(yè)
基于SSM整合框架的快速開(kāi)發(fā)技術(shù)研究_第3頁(yè)
基于SSM整合框架的快速開(kāi)發(fā)技術(shù)研究_第4頁(yè)
基于SSM整合框架的快速開(kāi)發(fā)技術(shù)研究_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、長(zhǎng)江大學(xué)計(jì)算機(jī)科學(xué)學(xué)院碩士研究生作 業(yè) 簿年 級(jí) 計(jì)算機(jī)科學(xué)S151專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)課程名稱 計(jì)算機(jī)新技術(shù)專題 姓 名熊魏交作業(yè)時(shí)間 2016年10月8日基于SSM整合框架的快速開(kāi)發(fā)技術(shù)研究熊魏長(zhǎng)江大學(xué)計(jì)算機(jī)科學(xué)學(xué)院S151班學(xué)號(hào):2015713901引言框架,即framework.其實(shí)就是某種應(yīng)用的半成品,把不同應(yīng)用程序中有共性的一些東西抽取出來(lái),做成一個(gè)半成品程序,這樣的半成品就是所謂的程序框架。軟件系統(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,涉及到的知識(shí)、內(nèi)容、問(wèn)題太多,在某些方面使用別人成熟的框架,就相當(dāng)于讓別人幫你完成一些基礎(chǔ)工作。你只需要集中精力,完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì),

2、這樣每次開(kāi)發(fā)就不用白手起家,而是可以在這個(gè)基礎(chǔ)上開(kāi)始搭建.使用框架的最大好處:減少重復(fù)開(kāi)發(fā)工作量、縮短開(kāi)發(fā)時(shí)間、降低開(kāi)發(fā)成本,同時(shí),還有其它的好處,如:使程序設(shè)計(jì)更合理,程序運(yùn)行更穩(wěn)定等?;谶@些原因,基本上現(xiàn)在在開(kāi)發(fā)中,都會(huì)選用某些合適的開(kāi)發(fā)框架,來(lái)幫助快速高效的開(kāi)發(fā)應(yīng)用系統(tǒng)??蚣艿倪x擇,就是看哪個(gè)框架最合適,從而減少開(kāi)發(fā)的工作量,提高開(kāi)發(fā)的效率和質(zhì)量,并有效減少維護(hù)的工作量,最終達(dá)到節(jié)約綜合開(kāi)發(fā)成,本獲取更多的收益.下面簡(jiǎn)單了解一下Spring MVC+Spring+Mybatis三大框架。2.技術(shù)架構(gòu)系統(tǒng)采用以spring為核心并整合了Spring mvc和mybatis的3個(gè)輕量級(jí)框架

3、技術(shù)的組合,即SSM整合框架。利用SSM整合框架可開(kāi)發(fā)出分層、易擴(kuò)展、易維護(hù)的企業(yè)級(jí)應(yīng)用系統(tǒng)。, 能夠極大地滿足系統(tǒng)的需求。SSM框架結(jié)構(gòu)圖如圖2所示。隨著web應(yīng)用的規(guī)模、復(fù)雜度不斷升級(jí),對(duì)軟件架構(gòu)的復(fù)用性、可靠性、可擴(kuò)展性都提出了較高的要求.本課題采用了MVC這一軟件架構(gòu)模式,該模式成功實(shí)現(xiàn)了動(dòng)態(tài)的程序設(shè)計(jì),簡(jiǎn)化了后續(xù)對(duì)程序的修改以及擴(kuò)展,使部分程序的重復(fù)利用成為可能。此外,此模式簡(jiǎn)化了應(yīng)用程序的復(fù)雜度,使程序結(jié)構(gòu)更直觀.基于MVC架構(gòu)模式,本系統(tǒng)采用SSM框架,即Struct2,spring3.0,mybatis框架組合,采用此框架技術(shù)可以提高開(kāi)發(fā)效率、降低程序的復(fù)雜度。圖1 SSM框架

4、結(jié)構(gòu)圖3MVC設(shè)計(jì)模式MVC設(shè)計(jì)模式1是一種目前廣泛流行的軟件設(shè)計(jì)模式,它把一個(gè)應(yīng)用的各流程按照Model(模型)、View(視圖)、Controller(控制器)的方式進(jìn)行分離。本系統(tǒng)所采用的SSM整合框架就是根據(jù)MVC設(shè)計(jì)模式的基礎(chǔ)上發(fā)展起來(lái),其中Struts2就是采用MVC模式建立起來(lái)的框架技術(shù),而Struts2正是需要與spring、Mybatis進(jìn)行無(wú)縫的集成,才能真正發(fā)揮MVC模式的作用.圖2 MVC設(shè)計(jì)模式的工作原理如圖1所示MVC設(shè)計(jì)模式的工作原理View部分即是應(yīng)用程序的用戶界面,用戶通過(guò)View層發(fā)送請(qǐng)求提交到Controller層;Controller層接受請(qǐng)求根據(jù)具體需

5、求調(diào)用Model層來(lái)處理,再根據(jù)Model層調(diào)用回來(lái)的結(jié)果進(jìn)行跳轉(zhuǎn)??芍狢ontroller層在整個(gè)流程中起到了橋梁的作用,控制數(shù)據(jù)的流向;而Model層負(fù)責(zé)業(yè)務(wù)邏輯的處理和數(shù)據(jù)庫(kù)訪問(wèn)。4 Spring MVC技術(shù)研究Spring Web MVC是一種基于Java的實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將web層進(jìn)行職責(zé)解耦,基于請(qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開(kāi)發(fā),Spring Web MVC也是要簡(jiǎn)化我們?nèi)粘eb開(kāi)發(fā)的。Spring Web MVC也是服務(wù)到工作者模式的實(shí)現(xiàn),但進(jìn)行可優(yōu)化。前端控制器是Dis

6、patcherServlet;應(yīng)用控制器其實(shí)拆為處理器映射器(Handler Mapping)進(jìn)行處理器管理和視圖解析器(View Resolver)進(jìn)行視圖管理;頁(yè)面控制器/動(dòng)作/處理器為Controller接口(僅包含ModelAndView handleRequest(request, response) 方法)的實(shí)現(xiàn)(也可以是任何的POJO類);支持本地化(Locale)解析、主題(Theme)解析及文件上傳等;提供了非常靈活的數(shù)據(jù)驗(yàn)證、格式化和數(shù)據(jù)綁定機(jī)制;提供了強(qiáng)大的約定大于配置(慣例優(yōu)先原則)的契約式編程支持.Spring Web MVC框架也是一個(gè)基于請(qǐng)求驅(qū)動(dòng)的Web

7、框架,并且也使用了前端控制器模式來(lái)進(jìn)行設(shè)計(jì),再根據(jù)請(qǐng)求映射規(guī)則分發(fā)給相應(yīng)的頁(yè)面控制器(動(dòng)作/處理器)進(jìn)行處理。首先讓我們整體看一下Spring Web MVC處理請(qǐng)求的流程如圖3所示:圖3 Spring MVC 處理流程具體執(zhí)行步驟如下:1、首先用戶發(fā)送請(qǐng)求-前端控制器,前端控制器根據(jù)請(qǐng)求信息(如URL)來(lái)決定選擇哪一個(gè)頁(yè)面控制器進(jìn)行處理并把請(qǐng)求委托給它,即以前的控制器的控制邏輯部分;圖3中的1、2步驟;2、頁(yè)面控制器接收到請(qǐng)求后,進(jìn)行功能處理,首先需要收集和綁定請(qǐng)求參數(shù)到一個(gè)對(duì)象,這個(gè)對(duì)象在Spring Web MVC中叫命令對(duì)象,并進(jìn)行驗(yàn)證,然后將命令對(duì)象委托給業(yè)務(wù)對(duì)象進(jìn)行處理;處理完畢后

8、返回一個(gè)ModelAndView(模型數(shù)據(jù)和邏輯視圖名);圖3中的3、4、5步驟;3、 前端控制器收回控制權(quán),然后根據(jù)返回的邏輯視圖名,選擇相應(yīng)的視圖進(jìn)行渲染,并把模型數(shù)據(jù)傳入以便視圖渲染;圖3中的步驟6、7;4、 前端控制器再次收回控制權(quán),將響應(yīng)返回給用戶,圖3中的步驟8;至此整個(gè)結(jié)束。5Spring技術(shù)研究Spring 是一個(gè)開(kāi)源框架,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架。Spring 框架是一個(gè)分層架構(gòu),由 6 個(gè)定義良好的模塊組成。Spring 模塊構(gòu)建在核心容器之上,

9、核心容器定義了創(chuàng)建、配置和管理 bean 的方式。圖4 Spring框架架構(gòu)其核心模塊為IOC容器和AOP。4。1 IOC(Inversion of Control控制反轉(zhuǎn),又名依賴注入)IOC即依賴注入,利用java里的反射機(jī)制在運(yùn)行時(shí)動(dòng)態(tài)的去創(chuàng)建、調(diào)用對(duì)象,Spring框架就是在運(yùn)行的時(shí)候,根據(jù)Spring的applicationContext.xml配置文件來(lái)動(dòng)態(tài)的創(chuàng)建對(duì)象并調(diào)用對(duì)象的方法的,所以使用Spring框架后不需要用new方法創(chuàng)建而是通過(guò)框架自動(dòng)產(chǎn)生一個(gè)對(duì)象,只需要在xml文件中對(duì)bean進(jìn)行定義。Spring發(fā)展到3.0后,不需要在xml文件中逐個(gè)定義bean對(duì)象,只需在調(diào)用

10、的文件中使用Autowired來(lái)聲明所調(diào)用的對(duì)象即可,使開(kāi)發(fā)更加簡(jiǎn)潔方便。4。2 AOP(AspectOrientedProgramming,面向方面編程)AOP即面向切面編程,其原理是利用代理的設(shè)計(jì)模式,未使用Spring時(shí),開(kāi)發(fā)人員需要編寫(xiě)大量的代碼來(lái)實(shí)現(xiàn)AOP,現(xiàn)在有了Spring對(duì)AOP的支持,不僅減輕了開(kāi)發(fā)的工作量提高了開(kāi)發(fā)的效率,也增強(qiáng)了程序的可靠性。本系統(tǒng)中Spring的AOP主要用于對(duì)事務(wù)的管理。Spring框架主要用于降低系統(tǒng)模塊之間的耦合度.其主要技術(shù)包括控制反轉(zhuǎn)(IOC)和面向切面編程(AOP)兩大方面。Spring降低耦合度的功能主要通過(guò)IOC來(lái)實(shí)現(xiàn),IOC是Sprin

11、g框架的核心,其原理可以理解為程序的所有組件都是被動(dòng)的,初始化和調(diào)用都有容器(Spring)的負(fù)責(zé)。另外Spring提供了AOP技術(shù),利用AOP可以對(duì)業(yè)務(wù)邏輯的各個(gè)部分進(jìn)行隔離,如:日志記錄、事務(wù)處理等,從而使得業(yè)務(wù)邏輯各部分的耦合度降低,提高程序的可重用性和開(kāi)發(fā)效率.4。3 spring的主要特性.(1)降低組件之間的耦合度,實(shí)現(xiàn)軟件各層之間的解耦。(2)可以使用容器提供的眾多服務(wù),如:事務(wù)管理服務(wù)、消息服務(wù)、JMS服務(wù)、持久化服務(wù)等等。(3)容器提供單例模式支持,開(kāi)發(fā)人員不再需要自己編寫(xiě)實(shí)現(xiàn)代碼.(4)容器提供了AOP技術(shù),利用它很容易實(shí)現(xiàn)如權(quán)限攔截,運(yùn)行期監(jiān)控等功能。(5)容器提供的眾多

12、輔作類,使用這些類能夠加快應(yīng)用的開(kāi)發(fā),如:JdbcTemplate、HibernateTemplate。(6)對(duì)主流的應(yīng)用框架提供了集成支持.6Hibernate與Mybatis技術(shù)研究MyBatis是一個(gè)基于Java的持久層框架.iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)。MyBatis 是支持普通 SQL查詢,存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis 使用簡(jiǎn)單的 XML或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Old

13、Java Objects,普通的 Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄.每個(gè)MyBatis應(yīng)用程序主要都是使用SqlSessionFactory實(shí)例的,一個(gè)SqlSessionFactory實(shí)例可以通過(guò)SqlSessionFactoryBuilder獲得.SqlSessionFactoryBuilder可以從一個(gè)xml配置文件或者一個(gè)預(yù)定義的配置類的實(shí)例獲得.用xml文件構(gòu)建SqlSessionFactory實(shí)例是非常簡(jiǎn)單的事情。推薦在這個(gè)配置中使用類路徑資源(classpath resource),但你可以使用任何Reader實(shí)例,包括用文件路徑或file:/開(kāi)頭的url創(chuàng)建的實(shí)例。MyBat

14、is有一個(gè)實(shí)用類-Resources,它有很多方法,可以方便地從類路徑及其它位置加載資源.6。1功能架構(gòu)Mybatis的功能架構(gòu)分為三層,如圖5所示:圖4 Mybatis 架構(gòu)(1)API接口層:提供給外部使用的接口API,開(kāi)發(fā)人員通過(guò)這些本地API來(lái)操縱數(shù)據(jù)庫(kù)。接口層一接收到調(diào)用請(qǐng)求就會(huì)調(diào)用數(shù)據(jù)處理層來(lái)完成具體的數(shù)據(jù)處理。(2)數(shù)據(jù)處理層:負(fù)責(zé)具體的SQL查找、SQL解析、SQL執(zhí)行和執(zhí)行結(jié)果映射處理等。它主要的目的是根據(jù)調(diào)用的請(qǐng)求完成一次數(shù)據(jù)庫(kù)操作。(3)基礎(chǔ)支撐層:負(fù)責(zé)最基礎(chǔ)的功能支撐,包括連接管理、事務(wù)管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來(lái)作為最基礎(chǔ)的組件.為上層

15、的數(shù)據(jù)處理層提供最基礎(chǔ)的支撐.6.2工作流程(1)加載配置:配置來(lái)源于兩個(gè)地方,一處是配置文件,一處是Java代碼的注解,將SQL的配置信息加載成為一個(gè)個(gè)MappedStatement對(duì)象(包括了傳入?yún)?shù)映射配置、執(zhí)行的SQL語(yǔ)句、結(jié)果映射配置),存儲(chǔ)在內(nèi)存中。(2)SQL解析:當(dāng)API接口層接收到調(diào)用請(qǐng)求時(shí),會(huì)接收到傳入SQL的ID和傳入對(duì)象(可以是Map、JavaBean或者基本數(shù)據(jù)類型),Mybatis會(huì)根據(jù)SQL的ID找到對(duì)應(yīng)的MappedStatement,然后根據(jù)傳入?yún)?shù)對(duì)象對(duì)MappedStatement進(jìn)行解析,解析后可以得到最終要執(zhí)行的SQL語(yǔ)句和參數(shù)。(3)SQL執(zhí)行:將最

16、終得到的SQL和參數(shù)拿到數(shù)據(jù)庫(kù)進(jìn)行執(zhí)行,得到操作數(shù)據(jù)庫(kù)的結(jié)果。(4)結(jié)果映射:將操作數(shù)據(jù)庫(kù)的結(jié)果按照映射的配置進(jìn)行轉(zhuǎn)換,可以轉(zhuǎn)換成HashMap、JavaBean或者基本數(shù)據(jù)類型,并將最終結(jié)果返回.6.3動(dòng)態(tài)SQLMyBatis 最強(qiáng)大的特性之一就是它的動(dòng)態(tài)語(yǔ)句功能。如果您以前有使用JDBC或者類似框架的經(jīng)歷,您就會(huì)明白把SQL語(yǔ)句條件連接在一起是多么的痛苦,要確保不能忘記空格或者不要在columns列后面省略一個(gè)逗號(hào)等。動(dòng)態(tài)語(yǔ)句能夠完全解決掉這些痛苦.盡管與動(dòng)態(tài)SQL一起工作不是在開(kāi)一個(gè)party,但是MyBatis確實(shí)能通過(guò)在任何映射SQL語(yǔ)句中使用強(qiáng)大的動(dòng)態(tài)SQL來(lái)改進(jìn)這些狀況。動(dòng)態(tài)SQ

17、L元素對(duì)于任何使用過(guò)JSTL或者類似于XML之類的文本處理器的人來(lái)說(shuō),都是非常熟悉的.在上一版本中,需要了解和學(xué)習(xí)非常多的元素,但在MyBatis 3 中有了許多的改進(jìn),現(xiàn)在只剩下差不多二分之一的元素.MyBatis使用了基于強(qiáng)大的OGNL表達(dá)式來(lái)消除了大部分元素.MyBatis是一個(gè)可以自定義SQL、存儲(chǔ)過(guò)程和高級(jí)映射的持久層框架。只使用簡(jiǎn)單的XML和注解來(lái)配置和映射基本數(shù)據(jù)類型、MAP接口和POJO(簡(jiǎn)單的JAVA對(duì)象)到數(shù)據(jù)庫(kù)記錄.相比另一流行的持久層框架Hibernate,MyBatis是一種“半自動(dòng)化”的ORM(對(duì)象關(guān)系映射)實(shí)現(xiàn),可以進(jìn)行更為細(xì)致的SQL優(yōu)化減少查詢字段.因?yàn)楸鞠到y(tǒng)

18、主要是對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行處理,而且數(shù)據(jù)量會(huì)比較大,結(jié)構(gòu)比較穩(wěn)定,因此對(duì)SQL語(yǔ)句應(yīng)進(jìn)行更高度的優(yōu)化,所以本系統(tǒng)選擇MyBatis作為數(shù)據(jù)庫(kù)持久層框架。相對(duì)Hibernate的全自動(dòng)化,Mybatis是半自動(dòng)化的ORM框架,雖然不如全自動(dòng)化更節(jié)省開(kāi)發(fā)人員時(shí)間,但是對(duì)于對(duì)性能要求較高的系統(tǒng),Mybatis可以對(duì)SQL語(yǔ)句自由進(jìn)行優(yōu)化,而且現(xiàn)在有MybatisGenerateCode等插件工具可以實(shí)現(xiàn)自動(dòng)生成實(shí)體類和基本的select,insert,delete及update語(yǔ)句.減少了Mybatis與Hibernate在開(kāi)發(fā)復(fù)雜度上面差距。表1是使用zakisoft工具對(duì)Hibernate和Myb

19、atis的執(zhí)行效率進(jìn)行的測(cè)試數(shù)據(jù),其中執(zhí)行時(shí)間為平均每條數(shù)據(jù)的執(zhí)行時(shí)間,insert測(cè)試數(shù)據(jù)為10000條,select、delete、update每次測(cè)試均為隨機(jī)選擇、刪除、更新一條數(shù)據(jù),執(zhí)行次數(shù)100次。根據(jù)以上調(diào)研及測(cè)試,綜合考慮,本系統(tǒng)采用Mybatis框架。7.管理員及權(quán)限模塊實(shí)現(xiàn)系統(tǒng)建立初期,只有超級(jí)管理員一個(gè)角色和用戶,超級(jí)管理員可以創(chuàng)建其他角色,并為角色分配不同的權(quán)限,例如:web菜單維護(hù)角色、新聞內(nèi)容管理角色、web布局管理角色以及文件管理等角色.然后創(chuàng)建web智能管理系統(tǒng)的后臺(tái)管理員用戶,每個(gè)用戶有其對(duì)應(yīng)的權(quán)限角色.例如擁有菜單維護(hù)的權(quán)限的用戶,可以創(chuàng)建前臺(tái)網(wǎng)站菜單并分配該

20、菜單對(duì)應(yīng)的主頁(yè).不同角色的管理員擁有不同的權(quán)限,在很大程度上保證了前臺(tái)web系統(tǒng)的安全性。7框架組合經(jīng)過(guò)對(duì)各個(gè)框架的研究,系統(tǒng)采用SSM框架組合,分別取Spring mvc、spring3。0、Mybatis各框架中優(yōu)秀模塊進(jìn)行組合,實(shí)現(xiàn)MVC架構(gòu)模式。取Spring mvc中的Action層與JSP頁(yè)面之間的交互響應(yīng)、攔截器,過(guò)濾器等功能作為view層和controller層;Mybatis作為model層,負(fù)責(zé)實(shí)例、JDBC連接以及數(shù)據(jù)持久層的功能;Spring作為一個(gè)輕量級(jí)的框架,采用其核心模塊IOC、AOP、Test,其中,IOC依賴翻轉(zhuǎn)用來(lái)連接各個(gè)層之間對(duì)象,簡(jiǎn)化各個(gè)對(duì)象之間調(diào)用;由

21、于基于反射及代理模式的面向切面編程開(kāi)銷比較大,本系統(tǒng)中只用來(lái)進(jìn)行事務(wù)管理,負(fù)責(zé)事務(wù)的回滾機(jī)制,Spring的Test機(jī)制使得測(cè)試變得不再?gòu)?fù)雜,可以采用非容器依賴的編程方式進(jìn)行大部分測(cè)試工作,此外Spring還擔(dān)當(dāng)著MVC各個(gè)層之間的無(wú)縫連接工作,否則即使各個(gè)框架都很優(yōu)秀也無(wú)法發(fā)揮出其最大的作用。在SSM整合框架中,每一個(gè)框架都發(fā)揮著自己最擅長(zhǎng)的方面: Spring mvc注重于降低表現(xiàn)層與邏輯層的耦合度,在視圖層和控制層發(fā)揮作用;Spring作為整個(gè)框架的核心部分,起到了橋梁的作用,對(duì)業(yè)務(wù)層的層次深化,在業(yè)務(wù)層通過(guò)其IOC技術(shù)的對(duì)象依賴注入和AOP技術(shù)的事務(wù)分離,更深層次的降低了耦合程度;My

22、Batis框架主要負(fù)責(zé)Java對(duì)象和關(guān)系數(shù)據(jù)庫(kù)之間的映射,在數(shù)據(jù)持久層上提供數(shù)據(jù)的訪問(wèn).通過(guò)應(yīng)用SSM整合框架,可以將整個(gè)系統(tǒng)開(kāi)發(fā)的結(jié)構(gòu)大致分為如圖2所示。圖6 SSM框架結(jié)構(gòu)3。1框架組合實(shí)現(xiàn)通過(guò)web。xml,Structs.xml,applicationContext。xml,mybatisconfig。xml這個(gè)配置文件搭建web系統(tǒng)的整體框架,使之符合MVC架構(gòu)模式.web。xml文件中通過(guò)contextparam配置了Spring的上下文位置,并通過(guò)listener配置,通知容器加載Spring及Struct2的配置文件.Structs.xml主要是對(duì)頁(yè)面提交的請(qǐng)求以及Action

23、返回的頁(yè)面進(jìn)行對(duì)應(yīng)。applicationContext。xml是Spring的配置文件,其中context:componentscan basepackage=”cn。project”/,可以實(shí)現(xiàn)使用annotation自動(dòng)注冊(cè)bean,并檢查Required,Autowired的屬性是否已經(jīng)被注入。使用AOP定義了事務(wù),除了以get,find,select方法名開(kāi)頭的方法外,其他service層的方法均有回滾機(jī)制,保證了事務(wù)的原子性、一致性、持久性.此外還配置了mybatis文件位置以及數(shù)據(jù)庫(kù)的相關(guān)信息,將業(yè)務(wù)層和數(shù)據(jù)層分離并聯(lián)系起來(lái).mybatisconfig。xml文件中配置了MAPP

24、ER的加載方式,本系統(tǒng)中采用非懶漢式加載,即在系統(tǒng)初始化時(shí)加載所有的MAPPER文件,防止出現(xiàn)初始化并發(fā)問(wèn)題。經(jīng)過(guò)編寫(xiě)各配置文件組合3個(gè)框架,完成了系統(tǒng)的整體架構(gòu)的搭建.SSM框架的組合分別是Spring mvc、Spring3.0、MyBatis,三者組合實(shí)現(xiàn)MVC架構(gòu)模式。Spring mvc的主要功能是使用action層與JSP頁(yè)面進(jìn)行交互.Mybatis是半自動(dòng)化的ORM框架,負(fù)責(zé)數(shù)據(jù)持久層的功能,可以對(duì)SQL語(yǔ)句進(jìn)行自動(dòng)優(yōu)化,并且可以使用插件實(shí)現(xiàn)自動(dòng)生成實(shí)體類及基本的語(yǔ)句。Spring核心模塊IOC依賴反轉(zhuǎn)各個(gè)層之間的對(duì)象,簡(jiǎn)化對(duì)象的調(diào)用。SSM框架在Web應(yīng)用系統(tǒng)開(kāi)發(fā)中具有以下優(yōu)勢(shì):(1)系統(tǒng)開(kāi)發(fā)效率提升.框架可以提供高效的組件和視圖處理,而且以配置文件的方式定義程序邏輯.需求改變僅需修改控制邏輯的配置文件,無(wú)需關(guān)心底層框架的實(shí)現(xiàn),從而提高系統(tǒng)開(kāi)發(fā)效率。(2)模塊間相互獨(dú)立。SSM框架具有“低耦合高內(nèi)聚”的特點(diǎn)。設(shè)計(jì)人員可以按功能將系統(tǒng)劃分為不同的功能模塊,模塊之間相互獨(dú)立,每個(gè)模塊的修改不影響其他模塊。(3)角色分離.框架為開(kāi)發(fā)者提供不同的接口,前端頁(yè)面設(shè)計(jì)人員只需關(guān)注JSP頁(yè)面的設(shè)計(jì),后臺(tái)邏輯開(kāi)發(fā)者對(duì)業(yè)務(wù)邏輯開(kāi)發(fā)程序。前端和后臺(tái)的人員相互獨(dú)立,互不影響。(4)縮短開(kāi)發(fā)周期,降低項(xiàng)目開(kāi)發(fā)成本??蚣芸梢赃m用于各種類型開(kāi)發(fā)人員協(xié)同工作,降低了對(duì)開(kāi)發(fā)人員

溫馨提示

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

評(píng)論

0/150

提交評(píng)論