在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中就可以拿到参数了,在需要的地方使用就行。每次部署就可以不用到处该,只用该配置文件就行了