java 动态加载配置文件_java web开发maven工程只需修改配置文件不用重启工程即可动态加载配置文件...

本文介绍了如何在Java Web开发中实现动态加载配置文件,避免每次修改配置文件后需要重启工程。主要步骤包括:1) 创建ConfigManager.java用于读取配置文件;2) 设计FileListenerAdaptor监听文件变化;3) 使用maven的tomcat7:run启动;4) 通过Servlet访问配置;5) 修改配置文件后立即生效。这样可以提高开发效率,减少不必要的重启操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5f44669d9023f819b9cfa4031178418d.png

1、读取配置文件ConfigManager.java,把变量地址修改成自己的

5f44669d9023f819b9cfa4031178418d.png//设置动态读取的文件路径

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值