package com.zhxk.ruralbus.utils;
import org.springframework.core.io.ClassPathResource;
import java.io.*;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Properties;
/**
* @author zhangran
* @date 2021年8月10日 11:39:34
*/
public class PropertiesUtil {
private static Properties props = null;
private static File configFile = null;
private static long fileLastModified = 0L;
private static final String CONFIG_FILE_NAME = "application.properties";
private static void init() {
URL url = PropertiesUtil.class.getClassLoader().getResource(CONFIG_FILE_NAME);
assert url != null;
configFile = new File(url.getFile());
fileLastModified = configFile.lastModified();
props = new Properties();
load();
}
private static void load() {
try {
ClassPathResource resource = new ClassPathResource(CONFIG_FILE_NAME);
InputStream inputStream = resource.getInputStream();
props.load( new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)));
fileLastModified = configFile.lastModified();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static String getConfig(String key) {
if ((configFile == null) || (props == null)) {
init();
}
/* 当检测到文件被修改时重新加载配置文件 */
if (configFile.lastModified() > fileLastModified) {
load();
}
return props.getProperty(key);
}
public static void main(String[] args){
URL url = PropertiesUtil.class.getClassLoader().getResource(CONFIG_FILE_NAME);
System.out.println(url);
}
}
07-21
248