在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中