在应用程序上下文中添加applicationContext-dao.xml和applicationContext-service.xml的原因是什么

时间:2014-03-12 16:43:22

标签: java xml spring spring-mvc applicationcontext

我在下面的代码中在应用程序上下文中设置了applicationContext-dao.xml和applicationContext-service.xml。

<servlet>
        <servlet-name>proj</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
        <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/config/proj-servlet.xml
        </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>proj</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
     <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener> 

     <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/config/applicationContext-dao.xml
            /WEB-INF/config/applicationContext-service.xml
        </param-value>
    </context-param> 

问题:为什么要在applicationContext和-servlet.xml中保留/WEB-INF/config/applicationContext-dao.xml和/WEB-INF/config/applicationContext-service.xml(proj-在这种情况下的servlet.xml)在webApplicationContext中。我们不能将所有文件保存在webApplicationContext.xml中吗?

3 个答案:

答案 0 :(得分:3)

一般来说,这只是一个整洁的问题:配置文件可以在真正的大型应用程序中增长很多(数千行)。

此外,这种方法允许您将模块划分为一个大型应用程序,而无需拆分此文件。我曾在多个项目中工作,其中数据库访问层具有SOAP / REST API,并且多个前端应用程序通过该API获取任何所需数据,因此该服务部署为独立模块。

答案 1 :(得分:1)

你可以加入

/WEB-INF/config/applicationContext-dao.xml /WEB-INF/config/applicationContext-service.xml

的文件。没问题。但出于可读性和可维护性的原因,最好将不同的概念保存在不同的文件中。

但是,请始终将您的网络工作人员保存在webapplicationcontext的不同文件中。

答案 2 :(得分:0)

是的,您可以将它们保存在同一个文件中,但对于较大的项目,如果将它们分开则可以更容易维护。