SpringMVC容器和Spring容器

2021-09-30 20:49:41 字數 807 閱讀 4440

tomcat&jetty在啟動時給每個web應用建立乙個全域性的上下文環境,這個上下文就是servletcontext,其為後面的spring容器提供宿主環境。

tomcat&jetty在啟動過程中觸發容器初始化事件,spring的contextloaderlistener會監聽到這個事件,它的contextinitialized方法會被呼叫,在這個方法中,spring會初始化全域性的spring根容器,這個就是spring的ioc容器,ioc容器初始化完畢後,spring將其儲存到servletcontext中,便於以後來獲取。

tomcat&jetty在啟動過程中還會掃瞄servlet,乙個web應用中的servlet可以有多個,以springmvc中的dispatcherservlet為例,這個servlet實際上是乙個標準的前端控制器,用以**、匹配、處理每個servlet請求。

servlet一般會延遲載入,當第乙個請求達到時,tomcat&jetty發現dispatcherservlet還沒有被例項化,就呼叫dispatcherservlet的init方法,dispatcherservlet在初始化的時候會建立自己的容器,叫做springmvc 容器,用來持有spring mvc相關的bean。同時,spring mvc還會通過servletcontext拿到spring根容器,並將spring根容器設為springmvc容器的父容器,請注意,spring mvc容器可以訪問父容器中的bean,但是父容器不能訪問子容器的bean, 也就是說spring根容器不能訪問springmvc容器裡的bean。說的通俗點就是,在controller裡可以訪問service物件,但是在service裡不可以訪問controller物件。

spring容器和springmvc容器

springmvc容器是spring容器的子容器,但是子容器可以父容器的bean,但是父容器不能訪問子容器的bean 可以把所有的bean都配置在springmvc容器的配置檔案中,但是拓展性不好。所有一般都各司其職,因此包掃瞄要分開。contextconfiglocationparam name ...

spring註解和springmvc容器初始化過程

本節主要通過乙個自定義註解了解註解是什麼,然後簡要介紹下spring註解分類和作用,最後簡要概括一下web spring容器初始化過程 1 自定義annotation my註解 target inherited documented retention retentionpolicy.runtime...

spring和springmvc父子容器問題

為什麼會出現這個問題呢,就是在整合配置web框架時,提高框架的效率減少冗餘,將絕大部分元件在spring中掃瞄,只有特定的元件放入springmvc中 例如service spring 和springmvc 的父子容器關係 spring和springmvc作為bean管理容器和mvc層的預設框架,已...