Spring3系列4-多個配置文件的整合
在大型的Spring3項目中,所有的Bean配置在一個配置文件中不易管理,也不利於團隊開發,通常在開發過程中,我們會按照功能模塊的不同,或者開發人員的不同,將配置文件分成多個,這樣有利於模塊的划分。本文將講述怎樣整合多個配置文件,由於Spring3允許使用xml配置和JavaConfig特性兩種方式配置,本文也將分別舉例。
一、 加載多個xml文件配置
例如,項目中有多個xml配置文件:
- Spring-Common.xml位於common文件夾下
- Spring-Connection.xml位於connection文件夾下
- Spring-ModuleA.xml位於moduleA文件夾下
你可以在代碼中加載以上3個xml配置文件
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"Spring-Common.xml","Spring-Connection.xml","Spring-ModuleA.xml"});
但是這種方法不易組織並且不好維護,最好的方法是在一個單獨的xml的配置文件中組織其他所有的xml配置文件。例如,可以創建一個Spring-All-Module.xml文件,然后將其他的xml配置文件導入到Spring-All-Module.xml中,就像下邊這樣,
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-3.0.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);
二、 加載多個JavaConfig特性配置
JavaConfig特性配置SpringBean見前文《Spring3系列3-JavaConfig》
假設有兩個JavaConfig的配置:
- CustomerConfig.java
- SchedulerConfig.java
你需要管理多個JavaConfig配置的情況下,可以單獨創建一個AppConfig.java,然后將其他的配置導入到AppConfig.java中,如下:
AppConfig.java
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration @Import({ CustomerConfig.class, SchedulerConfig.class }) public class AppConfig { }
這樣,加載時,只需要加載AppConfig.java即可
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);