1 回答

TA貢獻(xiàn)1865條經(jīng)驗 獲得超7個贊
所謂容器,就是上下文,在這同一個上下文里,大家可以共享一些東西。
在Spring
應(yīng)用啟動時,會先讀取web.xml
文件,調(diào)用ContextLoaderListener
創(chuàng)建Spring
容器,也就是你說的父容器。
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
Listener創(chuàng)建完之后,開始創(chuàng)建Servlet:
<servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet>
這時候這個DispatcherServlet
開始試圖創(chuàng)建SpringMVC
的ApplicationContext
,它先找剛才由上面那個ContextLoaderListener
創(chuàng)建的Spring
的ApplicationContext
,找到后,把Spring
的ApplicationContext
作為參數(shù)傳給DispatcherServlet
的ApplicationContext
的setParent
方法,這樣SpringMVC
的容器就變成了Spring
容器的兒子。
因為在SpringMVC這個子容器創(chuàng)建的時候指定了它的Spring父容器,所以兒子能找到父親,所以SpringMVC這個子容器里的Bean可以調(diào)用父容器的服務(wù),而父容器不知道有這個兒子的存在(一個不負(fù)責(zé)任的父親),父容器里的Bean不能調(diào)用子容器里的服務(wù)。
- 1 回答
- 0 關(guān)注
- 1039 瀏覽
添加回答
舉報