关于Spring加载多个配置文件的方式:
1. 在web.xml文件中注册:
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
在一个配置文件中的bean想要引用另一个文件中的bean,可以使用<property name="dataSource" ><ref bean="dataSource"/></property>这样拿到。注意是bean=, 而不是local = . 如果是使用local = .表示从当前配置文件中寻找bean, 如果bean是在其他文件中则用bean = 来找。
2. ApplicationContext act = new ClassPathXmlApplicationContext(new String[]{"bean1.xml","bean2.xml"});
BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg);
reader.loadBeanDefinitions(new ClassPathResource("bean1.xml"));
reader.loadBeanDefinitions(new ClassPathResource("bean2.xml"));
BeanFactory bf = (BeanFactory)reg;
3. struts与spring集成时,还可选择struts插件来集成spring配置文件。
在struts的配置文件struts-config-*.xml最后添加:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/com/handsoft/applicationContext.xml"/>
</plug-in>