Java 在应用程序运行时更改属性文件
我在属性文件中有一个属性。说“x”。 在我的Java类中,我在循环中使用这个x。因此,第一次执行循环时,它从属性文件加载,第二次执行循环时,它从内存中获取值,而无需每次加载props文件。现在,如果我想更改属性文件中x的值,我可以在不重新启动应用程序的情况下加载该值吗?如果是,如何进行Java 在应用程序运行时更改属性文件,java,file,Java,File,我在属性文件中有一个属性。说“x”。 在我的Java类中,我在循环中使用这个x。因此,第一次执行循环时,它从属性文件加载,第二次执行循环时,它从内存中获取值,而无需每次加载props文件。现在,如果我想更改属性文件中x的值,我可以在不重新启动应用程序的情况下加载该值吗?如果是,如何进行 在.net中,会话启动是否有Java等价物?我听说.net中的Session_OnStart就是为了这个目的您可以在每次请求变量时加载和解析属性 class RefreshingProperties extend
在.net中,会话启动是否有Java等价物?我听说.net中的Session_OnStart就是为了这个目的您可以在每次请求变量时加载和解析属性
class RefreshingProperties extends Properties {
private final File file;
public RefreshingProperties (File file) throws IOException {
this.file = file;
refresh ();
}
private void refresh () throws IOException {
load (new FileInputStream (file));
}
@Override
public String getProperty (String name) {
try { refresh (); }
catch (IOException e) {}
return super.get (name);
}
}
您可以调整此选项,使其仅在特定时间段到期时重新加载另请参见您可以使用前端屏幕来更改此值。然后,在发生更改时也更新会话…请描述您试图实现的功能。这听起来像是一个更好的解决方案。如果我必须在我的类中使用它,我是否需要加载RefreshingProperties而不是属性文件?我的意思是,除了Properties prop=new Properties(),RefreshingProperties prop=new RefreshingProperties()?还有,当我继续重新加载prop文件时,是否会出现性能问题?是的,显然您需要使用该类来利用其功能。是的,很明显,与不读取和解析文件相比,读取和解析文件会带来资源和性能成本。好的。。谢谢还有一个问题。HttpSessionListener的用途是什么?它与.net中的会话启动类似吗?会话侦听器在web会话创建和销毁时接收回调。我对.NET一无所知