溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SSM框架的基本原理與優(yōu)勢(shì)是什么

發(fā)布時(shí)間:2022-09-30 13:43:24 來(lái)源:億速云 閱讀:119 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“SSM框架的基本原理與優(yōu)勢(shì)是什么”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“SSM框架的基本原理與優(yōu)勢(shì)是什么”文章能幫助大家解決問(wèn)題。

原理:

1.Spring

在java里面,要用類里面的方法,就需要先有類的對(duì)象,而類的對(duì)象就是new出來(lái)

Spring就是用來(lái)簡(jiǎn)化這一步操作的框架

Spring是一個(gè)容器,里面裝了很多Bean即實(shí)體對(duì)象。之后要用到這些對(duì)象對(duì)應(yīng)的類的方法,可以直接從容器里面拿,就不用再去new一個(gè)了

2.SpringMVC

首先理解好servlet是什么?

Java Servlet 是運(yùn)行在 Web 服務(wù)器或應(yīng)用服務(wù)器上的程序,它是作為來(lái)自 Web 瀏覽器或其他 HTTP 客戶端的請(qǐng)求和 HTTP 服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序之間的中間層。

反正就是用來(lái)處理業(yè)務(wù)邏輯層的一個(gè)東西,能夠處理在前端頁(yè)面發(fā)起的請(qǐng)求

而SpringMVC也是這樣一個(gè)作用

SpringMVC是一個(gè)控制器+視圖分發(fā)器,處理業(yè)務(wù)邏輯層,最接近用戶的東西。

當(dāng)用戶在頁(yè)面做了某個(gè)操作,理解為發(fā)起一個(gè)請(qǐng)求,這個(gè)請(qǐng)求會(huì)被送到SpringMVC這個(gè)控制器,根據(jù)對(duì)于業(yè)務(wù)邏輯的理解來(lái)決定后端要做出什么操作(比如要從數(shù)據(jù)庫(kù)增刪改查還是展示什么到前端頁(yè)面),相當(dāng)于servlet的功能

舉一個(gè)簡(jiǎn)單的例子,我在瀏覽器輸入了一竄網(wǎng)址,然后回車。這個(gè)過(guò)程瀏覽器將我的網(wǎng)址從客戶端(C)輸入通過(guò)TCP/UDP等傳輸?shù)搅朔?wù)器(S),然后Tomcat根據(jù)我輸入的網(wǎng)址判斷它是屬于哪個(gè)Servlet,并且從這個(gè)網(wǎng)址上截取某些參數(shù)給選中的Servlet。

Servlet 是S與C之間的中間層,會(huì)根據(jù)拿到的參數(shù)判斷要采取什么操作,這里它通過(guò)判斷知道我是要打開一個(gè)網(wǎng)站(這里好像就是mappper到對(duì)應(yīng)的controller)。這里就是業(yè)務(wù)邏輯層,這是我們自己寫的代碼。接下來(lái)就由視圖分發(fā)器給我們返回我們想要的網(wǎng)址到C上

到此為止,Servlet是作為一個(gè)控制器,起到了攔截用戶請(qǐng)求并執(zhí)行具體對(duì)應(yīng)請(qǐng)求所執(zhí)行的操作(專業(yè)點(diǎn)說(shuō)就是將用戶請(qǐng)求通過(guò)HandlerMapping去匹配Controller,Controller就是具體對(duì)應(yīng)請(qǐng)求所執(zhí)行的操作)。在SpringMVC中,它的核心Servlet即DispatcherServlet。這個(gè)框架其實(shí)就是整合了Servlet該起的作用。

3.MyBatis

正常來(lái)說(shuō),我們寫java程序的時(shí)候,與數(shù)據(jù)庫(kù)交互式這么寫。先寫代碼connection鏈接數(shù)據(jù)庫(kù),然后寫sql語(yǔ)句被調(diào)用到數(shù)據(jù)庫(kù)中執(zhí)行。具體與數(shù)據(jù)庫(kù)的交互其實(shí)就是增刪改查

而現(xiàn)在MyBatis就是對(duì)這些增刪改查進(jìn)行封裝,即對(duì)jdbc的封裝,這是一個(gè)數(shù)據(jù)庫(kù)框架。我們配置好MyBatics后,就可以調(diào)用了,不用再去寫代碼考慮怎么連接數(shù)據(jù)庫(kù),怎么執(zhí)行sql語(yǔ)句

上面專業(yè)的解釋說(shuō),mybatis的操作都是圍繞一個(gè)sqlSessionFactory實(shí)例展開的。sqlSessionFactory相當(dāng)于用戶和數(shù)據(jù)庫(kù)的橋梁,它就是一個(gè)sql工廠,了解工廠模式的我們知道,工廠里面會(huì)有很多個(gè)sqlSession,當(dāng)我們拿到一個(gè)sqlSession,然后才執(zhí)行sql命令。

我們用sql語(yǔ)句寫的表,每一個(gè)表對(duì)應(yīng)一個(gè)Mapper.xml文件,具體的增刪改查寫在Mapper.xml文件里面,它被調(diào)用的時(shí)候幫我們執(zhí)行sql語(yǔ)句和返回?cái)?shù)據(jù),注意sql語(yǔ)句是要我們自己寫的。

與它相似又常用的框架還有Hibernate,這里就不說(shuō)了。

4.整合

上面說(shuō):頁(yè)面發(fā)送請(qǐng)求給控制器,控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請(qǐng)求,持久層與數(shù)據(jù)庫(kù)交互,后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。

擴(kuò)充下我的理解:頁(yè)面發(fā)送請(qǐng)求給控制器(控制器,進(jìn)入SpringMVC范圍了),控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請(qǐng)求,持久層與數(shù)據(jù)庫(kù)交互(就是MyBatis起作用了),后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)(視圖分發(fā)器,是SpringMVC起作用)。這個(gè)過(guò)程中,Spring作為一個(gè)容器,將整個(gè)過(guò)程囊括進(jìn)去了。

ssm框架的優(yōu)勢(shì)

1.Spring的優(yōu)勢(shì):

通過(guò)Spring的IOC特性,將對(duì)象之間的依賴關(guān)系交給了Spring控制,方便解耦,簡(jiǎn)化了開發(fā) 通過(guò)Spring的AOP特性,對(duì)重復(fù)模塊進(jìn)行集中,實(shí)現(xiàn)事務(wù),日志,權(quán)限的控制

提供了對(duì)其他優(yōu)秀開源框架的集成支持

2.Spring MVC的優(yōu)勢(shì):

SpringMVC是使用了MVC設(shè)計(jì)思想的輕量級(jí)web框架,對(duì)web層進(jìn)行解耦,使我們開發(fā)更簡(jiǎn)潔 與Spring無(wú)縫銜接 靈活的數(shù)據(jù)驗(yàn)證,格式化,數(shù)據(jù)綁定機(jī)制

3.Mybatis的優(yōu)勢(shì):

數(shù)據(jù)庫(kù)的操作(sql)采用xml文件配置,解除了sql和代碼的耦合 提供映射標(biāo)簽,支持對(duì)象和和數(shù)據(jù)庫(kù)orm字段關(guān)系的映射,支持對(duì)象關(guān)系映射標(biāo)簽,支持對(duì)象關(guān)系的組建 提供了xml標(biāo)簽,支持動(dòng)態(tài)的sql

關(guān)于“SSM框架的基本原理與優(yōu)勢(shì)是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

ssm
AI