淺談SSM框架


學習ssm框架(spring+springMVC+myBatis)有一段時間了,下面談談自己的看法


Spring框架(百科)

Spring是一個輕量級的容器框架,它的核心功能是控制反轉(IoC)和面向切面(AOP);它就是一個用來生產bean的工廠

輕量級框架優點是減小開發的復雜度,缺點是處理能力弱(如事務功能弱、不具備分布式處理能力,struts也是輕量級框架)

控制反轉IoC–一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象,它的作用在於解耦和

切面編程AOP–Spring提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該做的–完成業務邏輯–僅此而已。

在ssm框架中spring框架起銜接springMVC和myBatis框架作用,因為業務層會調用持久層的數據庫的數據處理,web層會調用業務層的業務處理。
這里寫圖片描述


springMVC框架(百科)

springMVC主要通過前端控制器對網頁請求進行處理,它的注解十分方便,簡潔化了開發和測試。

Spring MVC主要由DispatcherServlet、處理器映射、處理器(控制器)、視圖解析器、視圖組成。他的兩個核心是:
處理器映射HandlerMapping:選擇使用哪個控制器來處理請求 ;
視圖解析器ViewResolver:選擇結果應該如何渲染頁面;

工作流程
這里寫圖片描述
(1) Http請求:客戶端請求提交到DispatcherServlet。
(2) 尋找處理器:由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Controller。
(3)調用業務處理和返回結果:Controller調用業務邏輯處理后,返回ModelAndView。
(4)(5)處理視圖映射並返回模型: DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖。
(6) Http響應:視圖負責將結果顯示到客戶端


myBatis框架(百科)

myBatis是一個半自動化的持久層框架,使用者可以直接面對sql語句對數據庫操作,很方便(反面這也是它的缺點,要寫大量的數據庫操作語句);MyBatis使用簡單的XML或注解用於配置和原始映射,將接口和Java的POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。
myBatis強大之處在於它的動態sql語句,不用去管數據庫語句的逗號那些繁瑣的東西,很方便。
myBatis的事務交給Spring管理,Spring的AOP切面編程與myBatis事務的配合十分完美,你去使用它會有種它們注定是一對的感受。
myBatis的一級緩存是sqlSession級別,默認開啟;二級緩存是application級別,默認關閉。緩存針對於查找操作,對於增刪改操作,緩存會被刷新。詳細參考


三個框架整合流程

在ssm框架中spring框架起銜接springMVC和myBatis框架作用,因為業務層會調用持久層的數據庫的數據處理,web層會調用業務層的業務處理。
這里寫圖片描述
因此服務器啟動時,會首先加載spring容器spring配置文件中會加載myBatis對數據庫的操作以及事務操作,然后加載SpringMVC容器。


下面具體從配置文件來看

首先是服務器的配置文件web.xml
這里寫圖片描述


一、加載spring的配置文件application.xml
這里寫圖片描述

進入application.xml文件中

這里首先會掃描所有的bean加載到Spring容器中,然后加載myBatis持久層以及事務,沒有掃描Controller層是因為ssm框架中的SpringMVC容器會單獨掃描Controller層,這樣分開掃描,分工明確,條例清晰,后面會有文章單獨談掃描路徑
這里寫圖片描述
myBatis持久層的加載
這里寫圖片描述
事務加載
這里寫圖片描述

到此Spring容器已經加載完成,可以看到Spring框架和myBatis框架的融合,下面說SpringMVC框架


二、web.xml文件加載spring完成后,繼續加載SpringMVC
這里寫圖片描述

進入springMvc.xml文件

這里掃描只會掃描Controller層,因為SpringMVC容器是Spring容器的子容器,它可以使用Spring容器加載的東西。
這里寫圖片描述

由於我的配置是攔截所有請求,這里對靜態資源的加載也要配置
這里寫圖片描述

視圖解析器的配置
這里寫圖片描述

到這里整合算是結束,上面可能存在疏漏之處,請提出。


對於三個框架的使用,關鍵在於配置,大量的代碼被配置優化了,Spring框架對springMvc和myBatis框架的融合,簡化了整個業務流程,代碼十分簡潔。輕量級,速度快,效率高,這九個字形容SSM框架最好不過噢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM