在我的文件“ struts-config.xml ”中我写道:
当我的应用程序开始成功加载 application.properties 。
我如何重新加载此属性(因为我想更改内部文件中写入的很多属性)没有重新启动应用程序?
非常感谢。
吨。
答案 0 :(得分:1)
使用(来自http://www.docjar.com/html/api/com/opensymphony/xwork2/util/LocalizedTextUtil.java.html):
...
clearMap(ResourceBundle.class, null, "cacheList");
// if it's Tomcat
if ("org.apache.catalina.loader.WebappClassLoader".equals(cl.getName())) {
clearMap(cl, loader, "resourceEntries");
}
...
private static void clearMap(Class cl, Object obj, String name)
throws NoSuchFieldException, IllegalAccessException,
NoSuchMethodException, InvocationTargetException {
Field field = cl.getDeclaredField(name);
field.setAccessible(true);
Object cache = field.get(obj);
synchronized (cache) {
Class ccl = cache.getClass();
Method clearMethod = ccl.getMethod("clear");
clearMethod.invoke(cache);
}
}
显然,您可以导入该库并在需要时使用它。