您的位置:首页 > 运维架构 > Tomcat

读取web项目properties文件路径 解决tomcat服务器找不到properties路径问题

2016-10-26 17:02 811 查看
1.需求:有时候我们产品经理给我们的需求是会不断变化的,例如数量是1000现在变成500,我们不可以去改代码吧,这样很麻烦,所以就可以改配置文件properties(这个数据库链接一样),当然也有json格式的配置,我们暂不讨论

2.经历:先看图



(1)我之前以为直接在src创建system.properties然后

package cs.util;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
/**
*
* @author JJ
*
*/
public class SetSystemProperty {
//属性文件的路径
static String profilepath="src/system.properties";
/**
* 采用静态方法
*/
private static Properties props = new Properties();
static {
try {
props.load(new FileInputStream(profilepath));
} catch (FileNotFoundException e) {
e.printStackTrace();
System.exit(-1);
} catch (IOException e) {
System.exit(-1);
}
}

/**
* 读取属性文件中相应键的值
* @param key
* 主键
* @return String
*/
public static String getKeyValue(String key) {
return props.getProperty(key);
}

}


  

(2)做个测试

package cs.util;

public class test {

public static void main(String[] args) {
// TODO Auto-generated method stub
SetSystemProperty property=new SetSystemProperty();
String name=property.getKeyValue("name");
System.out.println(name);
}

}


  确实可以打印正确值,但是我部署到服务器(tomcat)里面就找不到配置文件路径,晕

3、解决方法

(1)配置文件不变暂放在src下面,修改类

package cs.util;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
*
* @author JJ
*
*/
public class SetSystemProperty {
static Properties   props;
public  void GetDBConfigStr()
{
props   =  new  Properties();
InputStream in;
try{
in=this.getClass().getResourceAsStream("/system.properties");
props.load(in);
}
catch(Exception e)
{
System.out.print(e.getMessage());
return ;
}
if(props.isEmpty())
{
return;
}
}
public String getValueByKey(String key)
{
return props.get(key).toString();

}

public SetSystemProperty() {
super();
GetDBConfigStr();
}

}


(2)在web项目中后台java的调用例子截图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐