SpringMVC 邏輯解析

2021-09-28 14:23:16 字數 1672 閱讀 8322

寫在前面:

這篇文章只是我對springmvc的理解,細節會理解的不到位,後面會慢慢修改。

springmvc的作用:

springmvc就是在接到url請求的時候,根據請求將其對映到對應的處理方法上面去。在方法處理結束後,根據返回的值,返回正確的頁面。

具體步驟

1.1 spring容器收集到所有的controller,service這些建立bean的實體物件

1.2 將對應的service物件注入到controller裡面

1.3 根據url對映到具體的處理方法上

1.4 根據返回的結果,找到對應的頁面

詳細解析:

2.1 spring是如何拿到所有的controller物件的?

<

context:component-scan

base-package

="com.xja.web.controller"

/>

2.2 是如何實現注入的?

(1) 首先拿到controller這個類的所有的類屬性filed,看那個屬性頭上有@autowired註解

(2) 使用filed.set(obj1,ob2j)這個方法,將obj1的filed這個屬性的值改為obj2。這樣這個就注入成功

2.4 mvc是如何得到每乙個請求的?

在web.xml檔案中配置了乙個dispatcher分發器的servlet,並且設定這個servlet會攔截所有的請求。

>

>

dispatcherservlet-name

>

>

org.springframework.web.servlet.dispatcherservlet

servlet-class

>

>

1load-on-startup

>

servlet

>

>

>

dispatcherservlet-name

>

>

*.dourl-pattern

>

>

所以如何對映就是這個dispatcherservlet處理的。

2.4 如何將url對映到具體方法?

將url拆分,然後先找到controller類的對映,在去找到method的對映,然後執行這個方法。

method.invoke(obj1,obj2)。

2.5 將返回值定位到具體的頁面?

springmvc將返回的值通過配置的viewsresolver,重新拼接鏈結,定位到頁面的位置。

class

="org.springframework.web.servlet.view.internalresourceviewresolver"

>

name

="prefix"

value

="/web-inf/jsp/"

/>

name

="suffix"

value

=".jsp"

/>

bean

>

可以看到這視**析器具有字首和字尾,將放會的字元拼接到一起。重新渲染,放回給客戶端。

SpringMVC註解解析

作用 用於建立請求url和處理請求方法之間的對應關係 位置 屬性 例如 1.mvc命名空間引入 命名空間 xmlns context xsi schemalocation spring context.xsd 2.元件掃瞄 springmvc基於spring容器,所以在進行springmvc操作時,...

SpringMVC元件解析

前端控制器 dispatcherservlet 使用者請求到達前端控制器,它就相當於 mvc 模式中的 c,dispatcherservlet 是整個流程控制的中心,由 它呼叫其它元件處理使用者的請求,dispatcherservlet 的存在降低了元件之間的耦合性。對映方式,例如 配置檔案方式,實...

SpringMVC元件解析

springmvc元件解析 1.前端控制器 dispatcherservlet 通過 handleradapter 對處理器進行執行,這是介面卡模式的應用,通過擴充套件介面卡可以對更多型別的處理器進行執行。4.處理器 handler 它就是我們開發中要編寫的具體業務控制器。由 dispatchers...