获取配置文件的工具类
方式一
public class PropertiesU {
private static Properties PROPS = new Properties();
private static Map<String,String> PROPER_MAP = new ConcurrentHashMap<String,String>();
static {
InputStream is = null;
try {
is = PropertiesU.class.getClassLoader().getResourceAsStream("application.properties");
PROPS.load(is);
} catch (IOException e) {
e.printStackTrace();
}finally {
if (is != null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static String getString(String key) {
return PROPS.getProperty(key);
}
}
方式二
public class PropertiesUtils {
private static Properties props = new Properties();
private static Map<String, String> PROPER_MAP = new ConcurrentHashMap<>();
static {
InputStream is = null;
try {
is = PropertiesUtils.class.getClassLoader().getResourceAsStream("application.properties");
props.load(is);
Iterator<Object> iterator = props.keySet().iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
PROPER_MAP.put(key,props.getProperty(key));
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static String getString(String key) {
return PROPER_MAP.get(key);
}
}
- 使用 ConcurrentHashMap 的好处
- 使用 ConcurrentHashMap 提供更高效的并发访问能力,并允许使用 Map 的其他操作,如 containsKey()、remove() 等。这种方式使得属性的处理更具灵活性和扩展性。