1. 程式人生 > 其它 >SSM框架的基本原理與優勢

SSM框架的基本原理與優勢

原理:

1.Spring

在java裡面,要用類裡面的方法,就需要先有類的物件,而類的物件就是new出來

Spring就是用來簡化這一步操作的框架

Spring是一個容器,裡面裝了很多Bean即實體物件。之後要用到這些物件對應的類的方法,可以直接從容器裡面拿,就不用再去new一個了

2.SpringMVC

首先理解好servlet是什麼?

Java Servlet 是執行在 Web 伺服器或應用伺服器上的程式,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 伺服器上的資料庫或應用程式之間的中間層。

反正就是用來處理業務邏輯層的一個東西,能夠處理在前端頁面發起的請求

而SpringMVC也是這樣一個作用

SpringMVC是一個控制器+檢視分發器,處理業務邏輯層,最接近使用者的東西。

當用戶在頁面做了某個操作,理解為發起一個請求,這個請求會被送到SpringMVC這個控制器,根據對於業務邏輯的理解來決定後端要做出什麼操作(比如要從資料庫增刪改查還是展示什麼到前端頁面),相當於servlet的功能

舉一個簡單的例子,我在瀏覽器輸入了一竄網址,然後回車。這個過程瀏覽器將我的網址從客戶端(C)輸入通過TCP/UDP等傳輸到了伺服器(S),然後Tomcat根據我輸入的網址判斷它是屬於哪個Servlet,並且從這個網址上擷取某些引數給選中的Servlet。

Servlet 是S與C之間的中間層,會根據拿到的引數判斷要採取什麼操作,這裡它通過判斷知道我是要開啟一個網站(這裡好像就是mappper到對應的controller)。這裡就是業務邏輯層,這是我們自己寫的程式碼。接下來就由檢視分發器給我們返回我們想要的網址到C上

到此為止,Servlet是作為一個控制器,起到了攔截使用者請求並執行具體對應請求所執行的操作(專業點說就是將使用者請求通過HandlerMapping去匹配Controller,Controller就是具體對應請求所執行的操作)。在SpringMVC中,它的核心Servlet即DispatcherServlet。這個框架其實就是整合了Servlet該起的作用。

3.MyBatis

正常來說,我們寫java程式的時候,與資料庫互動式這麼寫。先寫程式碼connection連結資料庫,然後寫sql語句被呼叫到資料庫中執行。具體與資料庫的互動其實就是增刪改查

而現在MyBatis就是對這些增刪改查進行封裝,即對jdbc的封裝,這是一個數據庫框架。我們配置好MyBatics後,就可以呼叫了,不用再去寫程式碼考慮怎麼連線資料庫,怎麼執行sql語句

上面專業的解釋說,mybatis的操作都是圍繞一個sqlSessionFactory例項展開的。sqlSessionFactory相當於使用者和資料庫的橋樑,它就是一個sql工廠,瞭解工廠模式的我們知道,工廠裡面會有很多個sqlSession,當我們拿到一個sqlSession,然後才執行sql命令。

我們用sql語句寫的表,每一個表對應一個Mapper.xml檔案,具體的增刪改查寫在Mapper.xml檔案裡面,它被呼叫的時候幫我們執行sql語句和返回資料,注意sql語句是要我們自己寫的。

與它相似又常用的框架還有Hibernate,這裡就不說了。

4.整合

上面說:頁面傳送請求給控制器,控制器呼叫業務層處理邏輯,邏輯層向持久層傳送請求,持久層與資料庫互動,後將結果返回給業務層,業務層將處理邏輯傳送給控制器,控制器再呼叫檢視展現資料。

擴充下我的理解:頁面傳送請求給控制器(控制器,進入SpringMVC範圍了),控制器呼叫業務層處理邏輯,邏輯層向持久層傳送請求,持久層與資料庫互動(就是MyBatis起作用了),後將結果返回給業務層,業務層將處理邏輯傳送給控制器,控制器再呼叫檢視展現資料(檢視分發器,是SpringMVC起作用)。這個過程中,Spring作為一個容器,將整個過程囊括進去了。

ssm框架的優勢

1.Spring的優勢:

通過Spring的IOC特性,將物件之間的依賴關係交給了Spring控制,方便解耦,簡化了開發 通過Spring的AOP特性,對重複模組進行集中,實現事務,日誌,許可權的控制

提供了對其他優秀開源框架的整合支援

2.Spring MVC的優勢:

SpringMVC是使用了MVC設計思想的輕量級web框架,對web層進行解耦,使我們開發更簡潔 與Spring無縫銜接 靈活的資料驗證,格式化,資料繫結機制

3.Mybatis的優勢:

資料庫的操作(sql)採用xml檔案配置,解除了sql和程式碼的耦合 提供對映標籤,支援物件和和資料庫orm欄位關係的對映,支援物件關係對映標籤,支援物件關係的組建 提供了xml標籤,支援動態的sql