问题
在大型项目结构中,Spring的bean配置文件位于不同的文件夹中,以便于维护和模块化。 例如, Spring-Common.xml
在共同文件夹, Spring-Connection.xml
在连接文件夹, 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 。
标签: 春天
翻译自: https://mkyong.com/spring/load-multiple-spring-bean-configuration-file/