将 classpath 下所有的.properties配置文件,加载到 Properties 对象中
/**
* ClassName: PropertiesUtils
* Description:
* 加载classpath 下所有的.properties配置文件,
* 相同key值会被覆盖
*/
public class PropertiesUtils {
private static Properties properties = null;
static{
properties = new Properties();
// 1.获取classpath url
URL url = PropertiesUtils.class.getClassLoader().getResource("");
try {
// 2.获取classes 目录对象
File file = new File(url.toURI());
// 3.获取目录下所有的文件名
String[] fileNameList = file.list();
// 4. 遍历,进行判断,如果是以.properties 结尾的,进行加载
for (String s : fileNameList) {
if(s.endsWith(".properties")){
InputStream inputStream = PropertiesUtils.class.getClassLoader().getResourceAsStream(s);
properties.load(inputStream);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param key 键
* @return 键所对应的值
*/
public static String getValue(String key){
String value = properties.getProperty(key);
if(value == null){
throw new NoSuchElementException();
}
return value;
}
/**
* @param key 键
* @return 键所对应的值(Integer 类型)
*/
public static Integer getIntegerValue(String key) {
String value = getValue(key);
return Integer.valueOf(value);
}
/**
* @param key 键
* @return 键所对应的值(Long 类型)
*/
public static Long getLongValue(String key) {
String value = getValue(key);
return Long.valueOf(value);
}
/**
* @param key 键
* @return 键所对应的值(Double 类型)
*/
public static Double getDoubleValue(String key) {
String value = getValue(key);
return Double.valueOf(value);
}
/**
* @param key 键
* @return 键所对应的值(Boolean 类型)
*/
public static Boolean getBooleanValue(String key) {
String value = getValue(key);
return Boolean.valueOf(value);
}
}