2 alias 888 alias_888 于 2015.06.21 21:53 提问

spri MVC配置文如何组织合理

springmvc项目中配置文件慢慢会变得很大,如何拆分并合理的组织?
看到有些项目是这么做的:

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring.xml,classpath:spring-mybatis.xml</param-value>
    </context-param>
 <servlet>
        <description>spring mvc servlet</description>
        <servlet-name>springMvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <description>spring mvc 配置文件</description>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

的配置文件和classpath:spring-mvc.xml的各自作用是什么?

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.21 21:58
 classpath:spring-mvc.xml:表示spring-mvc.xml文件在classes文件夹下
 其他那些文件都是基本的springmvc配置以及spring加载。
这些稍微找篇spring和springmvc的基础配置就都有说明。

文件
danielinbiti
danielinbiti 文件spring-mvc.xml,spring.xml都可以有多个,按功能或者模块划分命名。
2 年多之前 回复
alias_888
alias_888   2015.12.15 10:37

自己来回答一下自己的问题吧,spring的ApplicationContext是一个上下文概念,mvc项目其实每一个Servlet都有一个对应的WebApplicationContext.其对应的上下文配置beas的文件是[servlet-name]-servlet.xml,当然可以设置路径。但是这里每个servlet的配置文件是相互隔离的,也就是说某个servlet的配置文件中的beans在另一个servlet是不可用的。
解决这个问题就是将通用共享的beans放到root applicationContext中,web的application context会自动继承root applicationContext的beans。
例如我们可以将数据库 ,mybatis,spring-security等配置文件分别写进一个xml文件,然后在web启动时就加载进来,如下所示:

   <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
                classpath:spring-base.xml
                    classpath:spring-mybatis.xml
                        classpath:spring-security.xml
                </param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
Csdn user default icon
上传中...
上传图片
插入图片