1. 程式人生 > >spring載入多個配置檔案

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" />
    ……