问答详情
源自:4-1 从配置文件开始

关于spring 上下文和Dispatcher servlet上下文的关系

在上一章节的例子中,Dispatcher servlet下文初始化配置中会显示的表明只管理Controller包的bean,如果不加入这个配置(<context:include-filter type="annotation"
   expression="org.springframework.stereotype.Controller" />
),是不是就不需要在web.xml文件中声明spring上下文了?

下面这段配置摘自spring mvc 的配置文件mvc-dispatcher-servlet.xml

<!-- DispatcherServlet上下文, 只管理@Controller类型的bean, 忽略其他型的bean, 如@Service -->
 <context:component-scan base-package="com.imooc.mvcdemo">
  <context:include-filter type="annotation"
   expression="org.springframework.stereotype.Controller" />
 </context:component-scan>

提问者:小天犬 2016-04-09 10:22

个回答

  • 庄学爸
    2016-04-20 20:35:31

    如果不加入这个配置(<context:include-filter type="annotation"
       expression="org.springframework.stereotype.Controller" />
    ),也需要在web.xml文件中声明spring上下文配置对象,因为要体现层次化的上下文对象,不同层次之间的上下文负责的工作不同.

    像DispatcherServlet-servlet.xml,它是负责Controller的相关配置.另外的applicationContext.xml配置文件可以说是负责dao、service层下的管理,包括IOC、AOP等容器的管理.