天天看点

在web项目中添加自定义配置文件

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