问题描述
- 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的各自作用是什么?
解决方案
classpath:spring-mvc.xml:表示spring-mvc.xml文件在classes文件夹下
其他那些文件都是基本的springmvc配置以及spring加载。
这些稍微找篇spring和springmvc的基础配置就都有说明。
文件
解决方案二:
自己来回答一下自己的问题吧,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>
时间: 2024-09-17 08:17:22