3 Spring和SpringMVC父子容器關係

2021-10-04 12:37:44 字數 1860 閱讀 8276

書接上文,上文提到了乙個重要的概念:

spring 是父容器, spring mvc是子容器

現在就來仔細研究一下這句話。

spring和springmvc作為bean管理容器和mvc層的預設框架,已被眾多web應用採用,而實際使用時,由於有了強大的註解功能,很多基於xml的配置方式已經被替代,但是在實際專案中,同時配置spring和springmvc時會出現一些奇怪的異常,比如bean被多次載入,多次例項化,或者依賴注入時,bean不能被自動注入,但是明明你已經將該bean註冊了的。找原因還是要看問題的根源,我們從容器說起。

spring 容器是 spring 框架的核心。容器將建立物件,把它們連線在一起,配置它們,並管理他們的整個生命週期從建立到銷毀。spring 容器使用依賴注入(di)來管理組成乙個應用程式的元件。這些物件被稱為 spring beans。

spring中可以包括多個容器,而且容器有上下層關係,目前最常見的一種場景就是在乙個專案中引入spring和springmvc這兩個框架,其實就是2個容器,spring是根容器,springmvc是其子容器,並且在spring根容器中對於springmvc容器中的bean是不可見的,而在springmvc容器中對於spring根容器中的bean是可見的,也就是子容器可以看見父容器中的註冊的bean,反之就不行。下面是web.xml的配置檔案:

控制台日誌 

frameworkservlet(dispatcherservlet的父類)中的initservletbean方法:

控制台日誌

黃曉童SPRING學習筆記 Spring MVC

spring的定義 對di的初步理解 對aop的初步理解 對di的深入 對aop的深入 spring的事務管理 spring mvc contextconfiglocation classpath roadrantz services.xml classpath roadrantz data.xml...

在Spring的環境下使用SpringMVC

其實spring全家桶中真正負責簡化web開發的是springmvc,而spring其實與web開發並沒有必然的關係。我覺得所謂的整合就是分別用乙個xml檔案來進行配置,並且在web.xml中分別配置springmvc和spring 這是關鍵 這樣就會同時啟動springmvc和spring了。sp...

Spring學習日記第六天 SpringMVC

springmvc中的 和過濾器相似,但是過濾器是在服務端向後台傳送請求時攔截,而 是在 控制器在處理請求做對映之前。1 controller 先設定乙個controller層的方法,我們通過呼叫這個方法的時候來體現 controller public class intercontroller 2...