springmvc为什么还配置spring

anima.lee 发布于 2013/05/15 14:11
阅读 1K+
收藏 0
在配置时发现,其实只要配置SrpingMVC的部分就可以完成所需要的功能,而网上或书中,都还配置了Spring这一部分。

如下,其实只要spring-servlet配置好了就可以了,上面的<listener>可以不写。。。也可能是我只是单纯练习的原因,有些地方没用到。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <!-- spring的启动配置 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <!-- spring的启动配置结束 -->

    <!-- 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>/WEB-INF/spring-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>
    <!-- springMvc的配置结束 -->

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

其中,spring-servlet.xml和applicationContext.xml的内容其实是差不多的,spring-servlet.xml比applicationContext.xml多些内容。
因此我认为applicationContext.xml中的内容其实可以配置到spring-servlet.xml中去,只要多分几个xml配置文件不就行了吗?
加载中
0
anima.lee
anima.lee

引用来自“逝水fox”的答案

那个监听器最大的作用就是把applicationContext放到application作用域,便于获取,如果所有功能都靠注入不需要手工获取context的话,也不一定非要用。另外一个特殊的作用就是他产生的context是dispatchServlet的上下文有父子关系,如果应用大到有多个dispatchServlet的时候,公用部分就应该提到监听器这边来定义。

第一句大概明白些,比如对jdbc或hibernate的参数设置(从properties或xml里读出来的)放在application作用域,不用每次访问都得去读?第二句的公共部分也可以指这个。

对第二句。。。因为知识水平的原因,只能不明觉厉了。。。

anima.lee
anima.lee
回复 @逝水fox : 看来我的水平还是很低的,要努力学习啊
逝水fox
逝水fox
就是多个DispatchServlet各自管各自的路径,这个的好处是各自拥有不同的上下文和配置,但是都公用ContextLoaderListener的上下文内容。个人觉得特别有用的是,在Spring MVC的不同视图解析器只能按照order或者Mime-type来区分而不能分路径
0
捏造的信仰
捏造的信仰
是的,所有的配置写在 dispatch-servlet 配置文件当中就可以了。
0
逝水fox
逝水fox
那个监听器最大的作用就是把applicationContext放到application作用域,便于获取,如果所有功能都靠注入不需要手工获取context的话,也不一定非要用。另外一个特殊的作用就是他产生的context是dispatchServlet的上下文有父子关系,如果应用大到有多个dispatchServlet的时候,公用部分就应该提到监听器这边来定义。
0
lxbzmy
lxbzmy
面向的层面不同。
返回顶部
顶部