说说在 Spring 中如何整合多个配置文件

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

Spring 还可以通过 <import> 将多个配置文件引入到一个文件中,集成这些配置文件,这样在启动 Spring 容器时,仅需要指定这个主配置文件即可 。 比如以下的这个主配置文件:

<import resource="classpath:beans2.xml"/>
<bean id="author" class="net.deniro.spring4.bean.Author"/>

假设 beans2.xml 里面已经配置了 Book 类,那么 Spring 容器通过这个主配置文件即可加载这两个 Bean 信息咯 O(∩_∩)O哈哈~

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

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

我们可以通过 <import> 来引入多个外部配置文件,resource 属性支持 Spring 的标准资源路径。


大型应用为了防止开发时发生配置文件资源竞争现象,或者为了使模块便于拆分,往往每个模块都拥有直接独立的配置文件。我们可以在应用层面提供一个可整合的配置文件,通过 <import> 将各个模块整合起来 。 这样,在启动容器时,只需要加载这个整合后的配置文件就可以啦 O(∩_∩)O哈哈~

推荐阅读更多精彩内容