在搭建Spring框架时,web.xml文件的配置之DispatcherServlet&ContextLoaderListener

搭建spring框架的时候,web.xml中的spring相关配置时,只配org.springframework.web.servlet.DispatcherServlet可以吗

 

不用配置org.springframework.web.context.ContextLoaderListener将不能使用spring的控制反转(即Ioc),把spring mvcStruts用,即只映射urlaction的关系。

大多数springspringMVC的整合中,都需要在web.xml里面配置两样东西:

1、对spring配置listener,如

 

    

    

        contextConfigLocation

        classpath:spring/applicationContext-*.xml

    

    

org.springframework.web.context.ContextLoaderListener



2、对springMVC配置servlet,如

    

        springmvc

org.springframework.web.servlet.DispatcherServlet

        

            contextConfigLocation

            classpath:spring/springmvc.xml

        

        1

        true

    

        springmvc

        /   


ContextLoaderListener 是在上下文加载的时候调用一些配置进行初始化,比如你配置的之类的标签一般配置spring监听器都是为了配合Ioc容器一起使用的。

有些springspringMVC整合后,没有listener配置是因为:

1. 如果只有 Spring mvc 的一个 Servletlistener 可以不用。
2. 但是如果用了Shiro 等,Shiro 用到的 Spring 的配置必须在 listener 里加载。
3. 一般 Dao, Service  Spring 配置都会在 listener 里加载,因为可能会在多个 Servlet 里用到,因为父子 Context 的可见性问题,防止重复加载所以在 listener 里加载。

因此listener的使用依赖具体情况。

有的项目没有使用可能是因为项目里没和Ioc容器一起使用。
spring源代码里可以看到,启动web服务器的时候会调用监听器的上下文初始化方法,然后去初始化Ioc容器。

 

你可能感兴趣的:(在搭建Spring框架时,web.xml文件的配置之DispatcherServlet&ContextLoaderListener)