最近會說說web開發後端框架SpringBoot,但是在說SpringBoot之前,需要先說說,Spring+SpringMVC+Mybatis三個框架,只有了解了這三個框架的原理,你才會更好的理解SpringBoot的強大,它是如何整合的,如何自動配置的,如何啟動的自動載入bean的,同時又是多麼的簡化配置。
我們就先從表現層框架SpringMVC說起,表現層也就是我們所說的web層,它負責接收客戶端請求,向客戶端響應結果,通常客戶端使用http協議請求web層,web需要接收http請求,完成http響應。
表現層的設計一般都使用MVC模型。MVC全名Model View Controller ,Model(模型)-View(檢視)-Controller(控制器)的縮寫,是一種用於設計建立web應用程式表現層的模式。MVC中每個部分各司其職:Model(模型):通常指的就是我們的資料模型,作用一般情況下用於封裝資料。View(檢視):通常指的就是我們的jsp或者html,作用一般就是展示資料的,通常檢視是依據模型資料建立的。Controller(控制器):是應用程式中處理使用者互動的部分。作用一般就是處理邏輯的。
SpringMVC是什麼SpringMVC是一種基於Java的實現MVC設計模型的請求驅動型別的框架。接下來我們先寫一個簡單的案例,然後分析SpringMVC的原理。
一、在WEB-INF目錄下,新建一個web.xml,在裡面配置核心前端控制器
@Controller2public class HelloController{3 @RequestMapping("/hello")4 public String hello(){5 System.out.println("輸出hello");6 return "success";7 }8}
四、在pages這個目錄下新建一個success.jsp頁面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>2<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">3<html>4<h3>成功頁</h3>5</html>
五、WEB-INF目錄下,新建一個index.jsp頁面
六、那麼下面我們分析下SpringMVC是如何做到的。
1、tomcat啟動後,載入web.xml檔案,例項化和初始化Servlet()
2、載入SpringMVC.xml配置檔案,建立spring容器,根據配置初始化容器中的物件
3、首先客戶端發起請求,請求到達前端控制器
4、前端控制器請求,處理器對映器,找到對應的Controller 和方法,返回給前端控制器一個執行鏈
5、前端控制器接收執行鏈後,再請求處理器介面卡,把所有的Controller 和方法都適配上,並且執行Controller裡的方法,返回ModelAndView給前端控制器
6、前端控制器再請求檢視解析器,返回View物件
7、檢視渲染將模型資料填充到response域
七、入門案例中涉及的元件
1、DispatherServlet:前端控制器,使用者請求到達前端控制器,它就相當於mvc模式中的c,dispatcherServlet是整個流程控制的中心,由它呼叫其它元件處理使用者的請求,dispatcherServlet的存在降低了元件之間的耦合性。
2、HanderMapping:介面卡對映器,HandlerMapping負責根據使用者請求找到Handler即處理器,SpringMVC提供了不同的對映器實現不同的對映方式,例如:配置檔案方式,實現介面方式,註解方式等。
3、Handler:處理器,它就是我們開發中要編寫的具體業務控制器。由DispatcherServlet把使用者請求轉發到Handler。由Handler對具體的使用者請求進行處理。
4、HandlAdapter:處理器介面卡,通過HandlerAdapter對處理器進行執行,這是介面卡模式的應用,通過擴充套件介面卡可以對更多型別的處理器進行執行。
5、View Resolver:檢視解析器,View Resolver負責將處理結果生成View檢視,View Resolver首先根據邏輯檢視名解析成物理檢視名即具體的頁面地址,再生成View檢視物件,最後對View進行渲染將處理結果通過頁面展示給使用者。
6、View:檢視,SpringMVC框架提供了很多的View檢視型別的支援,包括:jstlView、freemarkerView、pdfView等。我們最常用的檢視就是jsp。一般情況下需要通過頁面標籤或頁面模版技術將模型資料通過頁面展示給使用者。
注:說明,在SpringMVC的各個元件中,處理器對映器、處理器介面卡、檢視解析器稱為SpringMVC的三大元件。使用自動載入RequestMappingHandlerMapping(處理對映器)和RequestMappingHandlerAdapter(處理介面卡),可用在SpringMVC.xml配置檔案中使用替代註解處理器和介面卡的配置。