首頁 常見問題 ssm框架原理及流程是什麼

ssm框架原理及流程是什麼

Jul 18, 2020 pm 05:49 PM
流程

ssm框架原理是:將Spring、SpringMVC、MyBatis整合在一起,作為資料來源較簡單的web專案的框架。流程是:Handler Mapping根據請求找到對應的Handler,呼叫業務邏輯進行處理,然後進行視圖解析即可。

ssm框架原理及流程是什麼

SSM框架簡介
#SSM(Spring SpringMVC MyBatis)框架集由Spring、MyBatis兩個開源框架整合而成(SpringMVC是Spring中的部分內容)。 SSM常作為資料來源較簡單的web專案的框架。

SpringMVC
SpringMVC在專案中攔截使用者請求,它的核心Servlet即DispatcherServlet承擔中介的職責,將使用者請求透過HandlerMapping去匹配Controller,Controller就是具體對應請求所執行的操作。
SpringMVC框架運行流程

使用者將請求傳送至DispatcherServlet;
DispatcherServlet收到請求查詢一個或多個HandlerMapping,找到處理該請求的Handler;
HandlerMapping根據請求找到對應的Handler,產生Handler物件返回給DispatcherServlet;
DispatcherServlet透過HandlerAdapter呼叫Handler;
Handler(Controller)呼叫業務邏輯(service)進行處理,處理完成返回ModelAndView ;
HandlerAdapter將Handler處理結果ModelAndView傳回給DispatcherServlet;
DispatcherServlet查詢一個或多個ViewReslover(視圖解析器),將ModelAndView傳給指定的ViewReslover;
ViewResloverovercherSerViewvlet;
DispatcherServlet對View進行渲染(將模型資料填入視圖中);
DispatcherServlet響應用戶,View將結果顯示在客戶端。
流程大致如下圖:

ssm框架原理及流程是什麼

DispatcherServlet是整個Spring MVC的核心,它負責接收HTTP請求,組織協調Spring MVC的各個組成部分,其主要的工作有以下3項:
a. 截取符合特定格式的URL請求;
b. 初始化DispatcherServlet上下文對應的WebApplicationContext,並將其與業務層、持久層的WebApplicationContext建立關聯;
c.初始化Spring MVC的各個元件,並配裝到DispatcherServlet中。
Spring
Spring就像是整個專案中組裝bean的大工廠,在設定檔中可以指定使用特定的參數去呼叫實體類別的建構方法來實例化物件。也可以稱之為項目中的黏合劑。
Spring的核心思想是IOC(控制反轉),即不再需要程式設計師去明確地new一個對象,而是讓Spring框架幫你來完成這一切。 IOC容器負責實例化、定位、配置應用程式中的物件及建立這些物件間的依賴。 Spring的目的就是讓物件與物件(模組與模組)之間的關係沒有透過程式碼來關聯,都是透過配置類別說明管理的(Spring根據這些配置,內部透過反射去動態的組裝物件)。
IOC容器代表的就是org.springframework.beans包中的BeanFactory接口,其提供了IOC容器的基本功能;而org.springframework.context包下的ApplicationContext接口擴展了BeanFactory,還提供了與Spring AOP集成、國際化處理、事件傳播及提供不同層次的context實作。
簡單說,BeanFactory提供了IOC容器最基本功能,而ApplicationContext則增加了更多支援企業級功能支援。 ApplicationContext完全繼承BeanFactory,因而BeanFactory所具有的語意也適用於ApplicationContext。
Spring運行流程

#

載入設定文件,ApplicationContext介面。設定檔中的bean的資訊被載入在HashMap中,一個bean通常包括,id,class,property等,bean的id對應HashMap中的key,HashMap中的value就是bean。
呼叫getBean方法,getBean是用來取得applicationContext.xml檔案裡bean的,參數是bean的id。一般情況都會強制轉換成對應的業務層(介面)。
呼叫業務層(介面實作)的方法。
bean中的內容是怎麼注入進去的?簡單來講,就是在實例化一個bean時,實際上就實例化了類,它透過反射調用類中set方法將事先保存在HashMap中的類屬性注入到類中。這樣就回到了我們Java最原始的地方,物件.屬性,物件.方法。
Mybatis
Mybatis是對jdbc的封裝,它讓資料庫底層操作變的透明。 Mybatis的操作都是圍繞著一個sqlSessionFactory實例展開的。 mybatis透過設定檔關聯到各實體類別的Mapper文件,Mapper檔案中配置了每個類別對資料庫所需進行的sql語句映射。每次與資料庫互動時,透過sqlSessionFactory拿到一個sqlSession,再執行sql指令。
Mybatis透過MapperProxy動態代理dao,也就是說,執行自己寫的dao裡面的方法的時候,其實是對應的MapperProxy在代理。
Mybatis運作原理

載入設定檔
將SQL的設定資訊載入成為一個個MappedStatement對象,包括了參數對映配置,執行的SQL語句,結果映射配置,儲存在記憶體中。
SQL解析
當API介面層接收到呼叫要求時,會接收到傳入SQL的ID和傳入物件(可以是Map/JavaBean或基本資料型別),Mybatis會根據SQL的ID找到對應的MappedStatement,然後根據傳入的參數物件MappedStatement進行解析,解析後可以得到最終要執行的SQL語句和參數。
SQL執行
將最終得到的SQL和參數拿到資料庫執行,得到操作資料庫的結果。
結果對應
將操作資料庫的結果依照映射的配置轉換,可以轉換成HashMap/JavaBean或基本資料類型,並將最終的結果傳回。

 

以上是ssm框架原理及流程是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

怎麼開多個頭條帳號?申請頭條號小號的流程是什麼? 怎麼開多個頭條帳號?申請頭條號小號的流程是什麼? Mar 22, 2024 am 11:00 AM

隨著行動互聯網的普及,今日頭條已成為我國最受歡迎的新聞資訊平台之一。許多用戶希望在頭條平台上擁有多個帳號,以滿足不同的需求。那麼,如何開立多個頭條帳號呢?本文將詳細介紹開設多個頭條帳號的方法和申請流程。一、怎麼開多個頭條帳號?開設多個頭條帳號的方法如下:在頭條平台上,用戶可以透過不同的手機號碼註冊帳號。每個手機號只能註冊一個頭條帳號,這表示用戶可以利用多個手機號註冊多個帳號。 2.郵箱註冊:使用不同的郵箱地址註冊頭條帳號。與手機號碼註冊類似,每個郵箱地址也可以註冊一個頭條帳號。 3.第三方帳號登入

抖音睡眠主播有收益嘛?睡眠直播的具體流程有哪些? 抖音睡眠主播有收益嘛?睡眠直播的具體流程有哪些? Mar 21, 2024 pm 04:41 PM

在當今這個快節奏的社會,睡眠品質問題困擾著越來越多的人。為了改善用戶的睡眠質量,抖音平台上出現了一群特殊的睡眠主播。他們透過直播與用戶互動,分享睡眠技巧,提供放鬆的音樂和聲音,幫助觀眾安然入睡。那麼,這些睡眠主播是否有收益呢?本文將圍繞這一問題展開探討。一、抖音睡眠主播有收益嘛?抖音睡眠主播確實能夠獲得一定的效益。首先,他們可以透過直播間的打賞功能獲得禮物和轉賬,這些收益取決於他們的粉絲數量和觀眾滿意度。其次,抖音平台會依照直播的觀看量、按讚量、分享量等數據,給予主播一定的分成。一些睡眠主播還會

崩壞星穹鐵道行過死蔭之地任務攻略流程 崩壞星穹鐵道行過死蔭之地任務攻略流程 Mar 28, 2024 pm 01:10 PM

崩壞星穹鐵道行過死蔭之地怎麼做?行過死蔭之地是主線任務【鴿群中的貓】其中一環,也是主線的最後階段,下面小編帶來崩壞星穹鐵道行過死蔭之地任務詳解,感興趣的小伙伴們快來看看。 1.過完上一階段劇情後,會自動傳送到下圖位置,和三月七對話後進入副本,記得組好隊2.備用方案是要打【石心十人】詭異砂金,隊伍四個角色戰術和終結技最好都是群攻,最好帶上盾和奶,這個【石心十人】詭異砂金不好打,搖骰子的時候,如果你的點數大於砂金就不會被打,且結束後回滿終結技能量,小於就會被打,所以盡量帶群攻角色打點數。在boss

php-fpm請求處理流程詳解與最佳化策略 php-fpm請求處理流程詳解與最佳化策略 Jul 07, 2023 pm 01:52 PM

php-fpm請求處理流程詳解與最佳化策略一、引言在Web應用開發中,PHP是一種非常流行的伺服器端腳本語言。而php-fpm(FastCGIProcessManager)則是PHP的一種管理器,用來處理PHP請求。本文將詳細介紹php-fpm的請求處理流程,並探討如何最佳化php-fpm,提升Web應用的效能。二、php-fpm請求處理流程客戶端發起請求當

崩壞星穹鐵道所有悲傷的故事任務攻略流程 崩壞星穹鐵道所有悲傷的故事任務攻略流程 Mar 28, 2024 pm 01:26 PM

崩壞星穹鐵道所有悲傷的故事怎麼做?所有悲傷的故事是主線任務【鴿群中的貓】其中一環,此階段流程比較長,下面小編帶來崩壞星穹鐵道所有悲傷的故事任務詳解,各位朋友們來看看吧。 1.完成前一階段之後,會自動傳送到第2個新地圖【克勞克影視樂園】,一路追蹤任務從1【彈珠機】去2位置跟著第3位角色發揮,完成劇情後,前往第4位位置和小孩對話,完成小遊戲【速度與堅果】,類似天天酷跑的小遊戲很簡單。 3.接著追蹤任務從下圖1位置【彈珠機】飛到2位置4.到下圖位置後,需要走迷宮,從左邊進去後,一直靠右走即可到達1任務點5

Vue開發經驗分享:優化開發流程與工作效率的經驗 Vue開發經驗分享:優化開發流程與工作效率的經驗 Nov 22, 2023 am 10:53 AM

Vue.js是一種流行的JavaScript框架,用於建立使用者介面和單頁面應用程式。其簡潔的語法、靈活性和強大的功能使得它成為了許多開發者的首選。在最近的專案開發中,我和我的團隊累積了一些優化開發流程和工作效率的經驗,特此分享給大家。首先,作為Vue.js開發的基礎,我們要充分了解Vue.js的生態系統和核心概念。 Vue.js的核心概念包括資料驅動、元件系統

Java語言中的軟體開發流程介紹 Java語言中的軟體開發流程介紹 Jun 10, 2023 am 11:07 AM

Java語言是一種使用廣泛的物件導向程式語言,被廣泛應用於企業級軟體開發。在Java語言中,軟體開發流程是一個非常重要的部分,它能夠幫助開發團隊更有效率地完成軟體開發任務。本文將會介紹Java語言中的軟體開發流程,並探討其各階段所要完成的任務。需求分析階段軟體開發的第一步是進行需求分析,該階段旨在確定軟體需求。在Java語言中的需求分析階段,開發團隊需要

使用PHP建立大數據應用的基本流程 使用PHP建立大數據應用的基本流程 May 11, 2023 pm 04:58 PM

近年來,隨著資料量的爆炸性成長,大數據應用的需求越來越大。 PHP作為一門廣受歡迎的程式語言,被廣泛應用於Web開發中,同時也可以用來建立大數據應用。本文將介紹使用PHP建構大數據應用的基本流程,包括資料處理、儲存與分析三個面向。一、資料處理資料處理是大數據應用的第一步,其目的是將資料從各個來源收集過來,並進行初步處理和清洗,以便儲存和分析使用。 PHP可以使用