将XML配置文件分拆成多个部分是非常有用的。为了加载多个XML文件生成一个 ApplicationContext实例,可以将文件路径作为字符串数组传给ApplicationContext构造器 。而bean factory将通过调用bean defintion reader从多个文件中读取bean定义。
通常情况下,Spring团队倾向于上述做法,因为这样各个配置并不会查觉到它们 与其他配置文件的组合。另外一种方法是使用一个或多个的<import/>
元素 来从另外一个或多个文件加载bean定义。所有的<import/>
元素必 须在<bean/>
元素之前完成bean定义的导入。 让我们看个例子:
<beans> <import resource="services.xml"/> <import resource="resources/messageSource.xml"/> <import resource="/resources/themeSource.xml"/> <bean id="bean1" class="..."/> <bean id="bean2" class="..."/> </beans>
在上面的例子中,我们从3个外部文件:services.xml
、 messageSource.xml
及themeSource.xml
来加载bean定义。这里采用的都是相对路径,因此,此例中的services.xml
一定要与导入文件放在同一目录或类路径,而messageSource.xm l
和themeSource.xml
的文件位置必须放在导入文件所 在目录下的resources
目录中。正如你所看到的那样,开头的斜杠 ‘/’实际上可忽略。因此不用斜杠‘/’可能会更好一点。根据Spring XML配置文件的 Schema(或DTD),被导入文件必须是完全有效的XML bean定义文件,且根节点必须为 <beans/>
元素。