1、读取配置文件ConfigManager.java,把变量地址修改成自己的
//设置动态读取的文件路径
private static String configPath = "E:/Documents/NetBeansProjects/ConfigManager/conf";
//设置动态读取的文件名
private static String pathName = "/configuration.properties";
2、创建监听文件来读取配置文件FileListenerAdaptor.java@Override
public void onFileChange(File file) {
System.out.println("[修改]:" + file.getAbsolutePath());
new ConfigManager();
}
3、启动输入maven令命启动 tomcat7:run
4、访问servlet地址 http://localhost:8080/Web/config
5、修改配置文件是再次访问 地址返回的是修改后的配置文件,无须重起web工程//读取配置文件(属性文件)的工具类
public class ConfigManager {
private static ConfigManager configManager;
//properties.load(InputStream);读取属性文件
private static Properties properties;
//设置动态读取的文件路径
private static String configPath = "E:/Documents/NetBeansProjects/ConfigManager/conf";
//设置动态读取的文件名
private static String pathName= "/configuration.properties";
static {
try {
// 构造观察类主要提供要观察的文件或目录,当然还有详细信息的filter
FileAlterationObserver observer = new FileAlterationObserver(
new File(configPath), null, null);
// 构造收听类
FileListenerAdaptor listener = new FileListenerAdaptor();
// 为观察对象添加收听对象
observer.addListener(listener);
// 配置Monitor,第一个参数单位是毫秒,是监听的间隔;第二个参数就是绑定我们之前的观察对象。
FileAlterationMonitor fileMonitor = new FileAlterationMonitor(
1000, new FileAlterationObserver[]{observer});
// 启动开始监听
fileMonitor.start();
} catch (Exception ex) {
Logger.getLogger(FileListenerAdaptor.class
.getName()).log(Level.SEVERE, null, ex);
}
}
public ConfigManager() {
// String configFile = "/opt/soft/apache-tomcat-8.0.12/webapps/gn/conf/configuration.properties";
String configFile = configPath+pathName;
properties = new Properties();
InputStream in = null;
try {
System.out.println(new File(".").getAbsolutePath());
in = new FileInputStream(configFile);
properties.load(in);
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static ConfigManager getInstance() {
if (configManager == null) {
configManager = new ConfigManager();
}
return configManager;
}
public String getString(String key) {
return properties.getProperty(key);
}
public int getInt(String key) {
return Integer.parseInt(properties.getProperty(key));
}
有问题联系qq 363349862