在搭建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,如

 

    <!--加载spring容器,启用Spring的相关配置-->

    <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:spring/applicationContext-*.xml</param-value>

    </context-param>

    <listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

2、对springMVC配置servlet,如

<!--/”表示根目录下的servlet请求都将进入springMVC的管理-->

<!--配置springmvc前端控制器-->

    <servlet>

        <servlet-name>springmvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>

            <param-name>contextConfigLocation</param-name>

            <param-value>classpath:spring/springmvc.xml</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

        <async-supported>true</async-supported>

</servlet>

    <servlet-mapping>

        <servlet-name>springmvc</servlet-name>

        <url-pattern>/</url-pattern>   

</servlet-mapping>

ContextLoaderListener 是在上下文加载的时候调用一些配置进行初始化,比如你配置的<context-param>之类的标签一般配置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容器。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值