在web.xml中通过contextConfigLocation配置spring,contextConfigLocation参数定义了要装入的 Spring 配置文件。如果想装入多个配置文件,可以在 <param-value>
标记中用逗号作分隔符。在web.xml里配置Listener
xml 代码如下: <listener> <listener-class> org.springframework.web.context.ContextLoaderListener listener-class > </listener>
如果在web.xml里给该Listener指定要加载的xml,如:
xml代码如下:
<!-- spring config -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
则会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml。
但是,如果没有指定的话,默认会去/WEB-INF/下加载applicationContext.xml。
在一个团队使用Spring的实际项目中,应该需要多个Spring的配置文件,如何使用和交叉引用的问题:
多个配置文件可以在web.xml里用空格分隔写入,如: <CONTEXT-PARAM> <PARAM-NAME>contextConfigLocation</PARAM-NAME> <PARAM-VALUE> applicationContext-database.xml,applicationContext.xml </PARAM-VALUE> </CONTEXT-PARAM> 多个配置文件里的交叉引用可以用ref的external或bean解决 例如:
applicationContext.xml <bean id="userService" class="domain.user.service.impl.UserServiceImpl"> <property name="dbbean"> <ref bean="dbBean"/> </property> </bean>
dbBean在applicationContext-database.xml中