两个applicationContext
spring使用mvc时会产生两个context上下文,一个是ContextLoaderListener产生的,一个是由DispatcherServlet产生的,它们俩是父子关系。parent WebApplicationContext里的bean可以在child WebApplicationContext里共享,但parent application中的bean取不到child application中的bean。不同的child WebApplicationContext里的bean区不干扰。
查看两个context是如何产生
需要注意的问题
重复构造bean
如果不知道Spring mvc里分有两个WebApplicationContext,在两个context中都定义了相同的bean,由于是放在两个context中加载所以不会报错。但这导致了重复构造bean。
bean无法注入
如果一个bean在child WebApplicationContext里初始化,那么在root WebApplicationContext里的类就没有办法对其进行注入。