spring載入多個配置檔案
首先我們都知道要使用spring,則需要在web.xml中增加如下程式碼:
web.xml:
1:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
spring是如何載入配置檔案肯定也跟 ContextLoaderListener類有關,該類可以作為listener 使用,它會在建立時自動查詢WEB-INF/ 下的applicationContext.xrnl 檔案。因此,
如果只有一個配置檔案,並且檔名為applicationContext.xml ,則只需在web.xml加上面程式碼即可。
如果有多個配置檔案需要載入,則考慮使用<context-param>即元素來確定配置檔案的檔名。
由於ContextLoaderListener載入時,會查詢名為contextConfigLocation的引數。因此,配置context-param時引數名字應該是
contextConfigLocation。所以context-param引數的名字是固定的contextConfigLocation.
如下面的例項:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value> /WEB-INF/applicationContext*.xml </param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
多個配置檔案用","分開,也可以使用萬用字元"*"載入多個配置檔案。如上例!
如果applicationContext.xml檔案需要放在src下,在在web.xml中配置如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
2:
通過一個父配置檔案將所有子配置檔案匯入
在配置檔案中有一個標籤import,它能把其它的bean定義配置檔案匯入到父資料夾中
例項:
web.xml配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/spring/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
在applicationContext.xml配置中:
<import resource="applicationContext-persistence.xml" />
……