Spring bean加载多个配置文件

Posted Wit_tang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring bean加载多个配置文件相关的知识,希望对你有一定的参考价值。

在一个大的项目结构,Spring bean配置文件位于不同的文件夹以便于维护和模块化。例如,Spring-Common.xml在common 文件夹中,Spring-Connection.xml 在connection文件夹,Spring-ModuleA.xml在ModuleA 文件夹等等。 你可以加载多个Spring bean的配置文件如下代码中:
ApplicationContext context = 
    	new ClassPathXmlApplicationContext(new String[] "Spring-Common.xml",
              "Spring-Connection.xml","Spring-ModuleA.xml");
把所有的 Spring XML 文件放入在项目类路径中。
project-classpath/Spring-Common.xml
	project-classpath/Spring-Connection.xml
	project-classpath/Spring-ModuleA.xml

解决方法

以上方法是缺乏组织并且很容易出错,更好的办法应组织所有的Spring bean 配置文件到一个XML文件。例如,创建一个Spring-All-Module.xml文件,并导入整个Spring bean的文件如下: File : Spring-All-Module.xml
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<import resource="common/Spring-Common.xml"/>
        <import resource="connection/Spring-Connection.xml"/>
        <import resource="moduleA/Spring-ModuleA.xml"/>
	
</beans>
现在,可以加载一个这样的 XML 文件:
ApplicationContext context = 
    		new ClassPathXmlApplicationContext(Spring-All-Module.xml);
将这个文件放入项目的类路径。
project-classpath/Spring-All-Module.xml
注意
在Spring3,所述替代解决方案是使用  JavaConfig @Import.

以上是关于Spring bean加载多个配置文件的主要内容,如果未能解决你的问题,请参考以下文章

spring配置加载多个properties文件

当多个配置文件不活动时如何有条件地声明 Bean?

07.Spring Bean 加载 - BeanDefinitionReader

spring mvc +ibatis 怎样配置自动加载多个sqlmap.xml文件

spring配置文件详解

spring配置文件详解