在web項目中添加自定義配置檔案
由于項目中一些參數跟項目的部署相關,每次部署都需要修改,而且修改的位置又分散在很多jsp檔案中,覺得特别麻煩,就在項目中添加了一個自定義的配置檔案,對項目中用的參數進行統一的管理。
參考資源:http://my.oschina.net/u/585275/blog/109227
執行個體:
這裡采用的加載方式是使用監聽器在初始化session是來加載配置檔案的,這種實作比較簡單,又能滿足需求,是以這裡就采用這種方法實作。
1.在src跟目錄下建立conf.properties檔案,這裡的路徑和檔案名可以根據需要取,但路徑最好是在src跟目錄下,因為這樣加載該檔案比較友善快捷。配置檔案執行個體:
production_url=http://192.168.1.168:8080
注意:配置檔案的編碼格式,要跟項目的保持一緻
2.在src的相應包中建立一個類,實作HttpSessionListener接口,作為session監聽器,實作裡面的方法,在sessionCreated方法中添加加載和解析配置檔案的方法,當然如果項目中有session監聽器那就直接在sessionCreated裡面加上解析配置檔案的方法就行,代碼:
package com.supre.listener;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
Properties properties = new Properties();
InputStream inputStream = null;
try {
//加載配置檔案
inputStream = getClass().getResourceAsStream("/conf.properties");
properties.load(inputStream);
//解析配置檔案,其中production_url為配置檔案中一個參數的key
String url = properties.get("production_url");
//下面是你拿到參數的使用,這個看需要,這裡我把參數值放到了session中
arg0.getSession().setAttribute("prod_url", url);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
}
}
3.如果你的session監聽器(就是上面的那個類)是剛建立的,那你就一定要在web.xml進行相關配置(如果項目中原來有那當然是已經配置過了啦)
<listener>
<listener-class>com.supre.listener.SessionListener</listener-class>
</listener>
4.這樣就完成了,我在項目的session中就可以拿到參數了,在需要的地方使用就行。每次部署就可以不用到處該,隻用該配置檔案就行了