配置文件parameters.properties(放在了/src/ 目录下)
#商汤人脸识别设备相关配置:
senstime.api.app_key =a814c02128d61907
senstime.api.app_secret =371d97d7b51660e745b783db05af9b91
senstime.api.app_url =http://192.168.1.46
Env.java公共类
/**
* 公共方法。 获得配置parameters.properties配置文件的参数值
*/
package _OA.sensetime.api;
import org.apache.log4j.Logger;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Properties;
import java.io.File;
public class Env {
private static Logger logger = Logger.getLogger(Env.class.getName());
/**当前系统环境对象的静态实例*/
private static Env INSTANCE = new Env(); //静态实例
/**环境配置对象的属性*/
private File propfile = null; //对应于属性文件的文件对象变量
private Properties properties = null; //属性文件所对应的属性对象变量
private static Properties DEFAULT_PROPERTIES = null; //记录配置项的默认配置值
/**系统级的常量*/
public static final String PROP_FILE_NAME = "/parameters.properties";//属性文件名
/**********************************/
/**以下配置的都是配置项的配置名称**/
/**********************************/
/**sensetime商汤人脸识别 云服务相关参数*/
public static String sensetime_url = "senstime.api.app_url"; //服务器地址
public static String sensetime_app_key = "senstime.api.app_key"; //服务器app_key
public static String sensetime_app_secret = "senstime.api.app_secret"; //服务器app_secret
static {//静态代码块,此类第一次被加载时会被读取(只读取一次)
/**设置配置项的默认配置*/
DEFAULT_PROPERTIES = new Properties();
DEFAULT_PROPERTIES.put(sensetime_url,"http://192.168.1.46---------");
DEFAULT_PROPERTIES.put(sensetime_app_key,"a814c02128d61907");
DEFAULT_PROPERTIES.put(sensetime_app_secret,"371d97d7b51660e745b783db05af9b91");
}
// 私有的构造方法,用以保证外界无法直接实例化
private Env()
{
super();
this.propfile = new File(PROP_FILE_NAME);
try{
properties = new Properties();
//FileInputStream is = new FileInputStream(propfile);//java下运行main函数没问题,部署到tomcat后系统就找不到文件了
InputStream is =this.getClass().getResourceAsStream(PROP_FILE_NAME);
properties.load(is);
is.close();
}
catch (Exception e){
e.printStackTrace();
}
}
/**
* 获取静态实例
* @return
*/
public static Env getInstance()
{
return INSTANCE;
}
/**
* 构造所有配置项的显示信息
* @return String
*/
public static String showAllEnvConfigItem()
{
StringBuffer sbTemp = new StringBuffer(128);
Enumeration enu = INSTANCE.properties.keys();
if (enu != null)
{
String key = "";
String valString = "";
while (enu.hasMoreElements())
{
key = (String) enu.nextElement();
//转换字符集
try
{
valString = INSTANCE.properties.getProperty(key);
if(valString != null){
valString = new String(valString.getBytes("ISO8859_1"),"GBK");
}else{
valString = "";
}
}
catch(Exception e)
{
}
sbTemp.append("EnvItem "+ key+ " : "+ valString + "\n");
}
}
return sbTemp.toString();
}
/**
* 获取指定名称的配置信息
* @param name
* @return
*/
public static String getEnvConfigItem(String name)
{
String val = null;
//INSTANCE = new Env();
val = INSTANCE.properties.getProperty(name);
//对属性文件的内容进行转码
//之所以不在load入文件的时候统一做转码,
//是因为在往Properties里set之后,之前做的转码工作无效,
//可能在Hashtable的put方法里再对值进行了转码
//这是测试后得出的结论
if(val != null)
{
try
{
val = new String(val.getBytes("ISO8859_1"),"GBK");
} catch (UnsupportedEncodingException e)
{
}
}
//如果未配置,则读取默认值
if (val == null)
{
val = DEFAULT_PROPERTIES.getProperty(name);
}
return val;
}
}
使用:
String url = Env.getEnvConfigItem(Env.sensetime_url)