您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何快速入門SpringIoC和SpringMVC,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
更多內容,歡迎關注微信公眾號:全菜工程師小輝~
降低了組件之間的耦合性 ,實現了軟件各層之間的解耦
可以使用容易提供的眾多服務,如事務管理,消息服務等
容器提供單例模式支持
容器提供了AOP技術,利用它很容易實現如權限攔截,運行期監控等功能
Spring的IoC機制降低了業務對象替換的復雜性
容器提供了眾多的輔助類,能加快應用的開發
Spring對于主流的應用框架提供了集成支持,如Hibernate,JPA,Mybatis等
Spring屬于低侵入式設計,代碼的污染極低, 并且獨立于各種應用服務器
Spring的高度開放性,并不強制應用完全依賴于Spring,開發者可以自由選擇spring的部分或全部。
IoC和AOP是Spring框架的兩大特性,IoC和MVC的流程密不可分,可以看作是面向對象編程的實現;而AOP特性則是面向切面編程的體現,也是前者的補充,所以可以拆分開后續講解。
> 本文對SpringIoC和SpringMVC的流程進行了簡單的講解,更加詳細的過程,歡迎看筆者的代碼庫,里面幾乎每行代碼都做了詳細注釋,一個請求debug跟下來,過程就一目了然了。
快戳我,我們去學習~
控制反轉IoC(Inversion of Control),是一種設計思想。沒有IoC的程序中我們使用面向對象編程對象的創建與對象間的依賴關系完全硬編碼在程序中,對象的創建由程序自己控制,而使用控制反轉后,將對象的創建轉移給第三方。
IoC是Spring框架的核心內容,使用多種方式完美的實現了IoC,可以使用XML配置,也可以使用注解,新版本的Spring也可以零配置實現IoC。Spring容器在初始化時先讀取配置文件,根據配置文件或元數據創建與組織對象存入容器中,程序使用時再從IoC容器中取出需要的對象。
> 采用XML方式配置Bean的時候,Bean的定義信息是和實現分離的,而采用注解的方式可以把兩者合為一體,Bean的定義信息直接以注解的形式定義在實現類中,從而達到了零配置的目的。
基礎包掃描。讀取配置文件,然后根據配置路徑進行全包掃描,,最后將掃描到的類名加上全限定名之后加入到數組集合中
實例化所有帶注解的類。遍歷上一步的數組集合,判斷類上的注解并實例化該類,以該類的類名為key,實例為value,放入哈希表中
依賴注入。遍歷上一步的哈希表,獲取類上所有Fields,遍歷Fields,判斷Fields上是否為@Autowired類型的注解,如果是的話就把Map中的實例賦值這個field
Url地址和方法映射。遍歷第二步的哈希表,如果是Controller實例,獲取Methods并遍歷,判斷方法上是否含有@RequestMapping注解,如果含有,則獲取它的值,將@Controller的注解值拼接上@RequestMapping值組成key,當前method作為value,裝入hanlerMap中
請求反射調用。(這一步已經屬于MVC范疇)一個url請求過來,獲取它的地址,拆分,獲取Controller實例,獲取Method實例,反射執行Method
SpringMVC框架是以請求為驅動,圍繞Servlet設計,將請求發給控制器,然后通過模型對象,分派器來展示請求結果視圖。其中核心類是DispatcherServlet,它是一個Servlet,頂層是實現的Servlet接口。
框架的作用一直都是用來簡化編程的:
servlet只有doGet和doPost,一個servlet類只能處理一個url-pattern。
SpringMVC類里面可以通過RequestMapping處理很多請求,并且支持Rest風格的請求,如DELETE/PUT等;SpringMVC參數的映射可以直接封裝成實體類。
用戶發送請求至 前端控制器DispatcherServlet。
前端控制器DispatcherServlet收到請求后調用處理器映射器HandlerMapping。
處理器映射器HandlerMapping根據請求的Url找到具體的處理器,生成處理器對象Handler及處理器攔截器HandlerIntercepter(如果有則生成)一并返回給前端控制器DispatcherServlet。
前端控制器DispatcherServlet通過處理器適配器HandlerAdapter調用處理器Controller。
執行處理器(Controller,也叫后端控制器)
處理器Controller執行完后返回ModelAndView。
處理器映射器HandlerAdapter將處理器Controller執行返回的結果ModelAndView返回給前端控制器DispatcherServlet。
前端控制器DispatcherServlet將ModelAnView傳給視圖解析器ViewResolver。
視圖解析器ViewResolver解析后返回具體的視圖View。
前端控制器DispatcherServlet對視圖View進行渲染視圖(即:將模型數據填充至視圖中)
前端控制器DispatcherServlet響應用戶。
DispatcherServlet:前端控制器(不需要程序員開發) 用戶請求到達前端控制器,它相當于MVC模式中的C(Controller),DispatcherServlet是整個流程控制的中心,由它調用其它組件處理用戶的請求,DispatcherServlet的存在降低了組件之間的耦合性。
作用:作為接受請求,相應結果,相當于轉發器,中央處理器,減少其他組件之間的耦合度。
HandlerMapping:處理器映射器(不需要程序員開發)
HandlerMapping負責根據用戶請求找到Handler(即:處理器),SpringMVC提供了不同的映射器實現實現不同的映射方式,例如:配置文件方式、實現接口方式、注解方式等。
作用:根據請求的Url 查找Handler
Handler:處理器(需要程序員開發)
Handler是繼DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下,Handler對具體的用戶請求進行處理。 由于Handler設計到具體的用戶業務請求,所以一般情況需要程序員根據業務需求開發Handler。
HandlerAdapter:處理器適配器 通過HandlerAdapter對處理器進行執行,這是適配器模式的應用,通過擴展適配器可以對更多類型的處理器進行執行。
作用:按照特定的規則(HandlerAdapter要求的規則)去執行Handler
ViewResolver:視圖解析器(不需要程序員開發) ViewResolver負責將處理結果生成View視圖,ViewResolver首先根據邏輯視圖名解析成物理視圖名,即具體的頁面地址,再生成View視圖對象,最后對View進行渲染將處理結果通過頁面的展示給用戶。SpringMVC框架提供了很多View視圖類型,包括:JSTLView、freemarkerView、pdfView等等。
作用:進行視圖解析,根據邏輯視圖名解析成真正的視圖(view)。
View視圖 (需要程序員開發 jsp)
View是一個接口,實現類支持不同的View類型(jsp、freemarker等)一般情況下需要通過頁面標簽或者頁面模板技術將模型數據通過頁面展示給用戶,需要由程序員根據業務需求開發具體的頁面。
以上就是如何快速入門SpringIoC和SpringMVC,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。