概述

对于一个大型应用来讲,可能存在多个配置文件,在启动Spring容器的时候,可以通过一个String数组指定这些配置文件。

Spring还允许通过​​<import>​​将多个配置文件引入到一个文件中,进行配置文件的集成,这样在启动Spring容器的时候,仅需要指定这个合并好的配置文件即可。

比如

<import resource="classpath:com/xgj/ioc/lookup/beans.xml"/>
<bean id="pilot" class="com.xgj.ioc.scope.Pilot" p:plane-ref="plane" />
<bean id="plane" class="com.xgj.ioc.scope.Plane"/>

resource支持Spring标准的资源路径。

关于resource的特性 请参考 ​​利用Spring提供的Resource/ResourceLoader接口操作资源文件​

需要指出的是,如果一个配置文件a.xml引用了b.xml中的bean ,并不一定需要通过import引入b.xml ,只需要保证在启动Spring容器时,a.xml和b.xml都在配置文件列表中即可。

区别在于,如果a.xml采用import引入了b.xml,相当于a.xml一个文件就包含了a.xml和b.xml, 因此Spring容器只需要加载a.xml文件即可,否则就需要在Spring启动时,同时加载两个配置文件,以便在内存中对两个配置文件进行合并。

小结

对于大型应用来讲,为了防止开发时配置文件的资源竞争,或者为了使模块便于拆卸,往往每个模块都拥有直接独立的配置文件, 应用层面提供可一个整合的配置文件,通过import将各个模块整合起来。这样,在启动容器时,只需要加载这个整合的配置那文件即可