1. 程式人生 > >三、面試準備-框架知識

三、面試準備-框架知識

0、什麼是Spring

Spring從功能上來說確實是一個框架。但是從本質意義上來說,Spring是一個庫,一個Java庫。
Spring的功能是提供了一個軟體框架,這個框架能使軟體之間的邏輯更加清晰,配置更加靈活。

Spring有兩個重要思想:AOP(面向切面)和IOC(依賴注入)。

AOP:

AOP在Java裡是利用反射機制實現的。也可以認為是利用動態代理實現的。不過動態代理也是通過反射機制實現的。

AOP的本質是在一系列縱向的控制流程中,把那些相同的子流程提取成一個橫向的面。

寫好一個通用的子流程,不用放到主流程中。在需要用到改子流程時,告訴Spring想要把這段程式碼加到什麼地方,Spring就會幫你加過去。這樣在寫程式碼的時候就可以專注考慮主流程,使邏輯更清晰,編碼更高效。

IOC:

當一個類的例項需要另一個類協助時,在傳統的程式設計中,通常由呼叫者來建立被呼叫者的例項。現在,建立被呼叫者的工作不再由呼叫者來完成,建立被呼叫者的例項的工作由IOC容器來完成。因此叫控制反轉。

Spring事務:

事務就是對一系列的資料庫操作進行統一的提交或回滾操作,如果成功,則一起成功,如果中間有一條出現異常,則回滾之前的所有操作。這樣可以防止出現髒資料,防止資料庫資料出現問題。

Spring中有自己的事務管理機制。可分為兩類:程式設計式事務的和宣告式事務。

Spring主要通過“宣告式事務”的方式對事務進行管理,即在配置檔案中進行宣告,通過AOP將事務切面切入程式,能夠減少程式碼量。

 

1、什麼是MVC

MVC是一個架構,或者說是一個設計模式,它就是強制性使應用程式的輸入,處理和輸出分開。將一個應用程式分為三個部分:Model,View,Controller。

Model(模型):業務邏輯、資料層
View(檢視):表示層
Controller(控制器):接收請求==>呼叫模型==>根據結果派發頁面並經過模型處理返回相應資料。

優點:
1、分工明確(開發人員可以只關注整個結構中的某一層):使用MVC可以把資料庫開發、程式邏輯開發、頁面開發分開。
2、低耦合(降低程式碼間的依賴程度):檢視層和業務層分離。應用的業務流程或者業務規則改變只需要改動模型層。更改檢視層不用更改模型層和控制器的程式碼。方便程式碼維護。
3、複用性高(利於各層邏輯的複用):比如 多個檢視能共享一個模型。

缺點:
1、有時會導致級聯的修改。這種修改尤其體現在自下而上的方向。如果在表示層中需要增加一個功能,為了保證其設計符合MVC結構,可能需要在相應的業務邏輯層和資料訪問層中都增加相應的程式碼。可以通過設計模式改善。
2、降低了系統的效能。如果不採用分層結構,很多業務可以直接訪問資料庫。採用MVC模式要通過中間層來完成。可以通過快取機制改善。

 

2、SpringMVC工作原理

第一步:使用者發起請求到前端控制器(DispatcherServlet)

第二步:前端控制器請求處理器對映器(HandlerMappering)去查詢處理器(Handle):通過xml配置或註解進行查詢

第三步:找到以後處理器對映器向前端控制器返回執行鏈(HandlerExecutionChain)

第四步:前端控制器呼叫處理器介面卡(HandlerAdapter)去執行處理器

第五步:處理器執行完畢給處理器介面卡返回ModelAndView

第六步:處理器介面卡向前端控制器返回ModelAndView

第七步:前端控制器請求檢視解析器(ViewResplver)進行檢視解析

第八步:檢視解析器向前端控制器返回View

第九步:前端控制器對檢視進行渲染

第十步:前端控制器向用戶響應結果

前端控制器(DispatcherServlet):接收請求,響應結果,相當於電腦的CPU。
處理器對映器(HandlerMappering):根據URL去查詢處理器。
處理器(Handle):需要程式設計師去寫程式碼處理邏輯。
處理器介面卡(HandlerAdapter):會把處理器包裝成介面卡,這樣就可以支援多種型別的處理器。
檢視解析器(ViewResplver):進行檢視解析,對返回的字串進行處理,可以解析成對應的頁面。

 

3、簡述Mybatis框架

Mybatis是支援訂製化SQL、儲存過程以及高階對映的持久層框架。

功能是:封裝JDBC操作、利用反射實現Java類與SQL語句之間的相互轉換。

Mybatis讓程式設計師將主要精力放在SQL上,通過Mybatis提供的對映方式,自由靈活生成滿足需要的SQL語句。