Web applications 何时在Java Web应用程序中读取.properties文件
我正在使用JavaEE6和JSF2.0开发一个web应用程序。我有一个.properties文件,其中存储了一些常量,在部署应用程序之前需要轻松更改这些常量。我知道如何读取属性文件,但问题是何时读取 这是我用来访问名为Web applications 何时在Java Web应用程序中读取.properties文件,web-applications,jakarta-ee,properties-file,Web Applications,Jakarta Ee,Properties File,我正在使用JavaEE6和JSF2.0开发一个web应用程序。我有一个.properties文件,其中存储了一些常量,在部署应用程序之前需要轻松更改这些常量。我知道如何读取属性文件,但问题是何时读取 这是我用来访问名为CLIENT\u ID和CLIENT\u SECRET的属性的类: public class FConnectProperties { Properties properties; public FConnectProperties() throws FileN
CLIENT\u ID
和CLIENT\u SECRET
的属性的类:
public class FConnectProperties {
Properties properties;
public FConnectProperties() throws FileNotFoundException, IOException{
properties = new Properties();
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream stream = classLoader.getResourceAsStream("/FConnect/FConnect.properties");
properties.load(stream);
stream.close();
}
public String getClientID(){
return properties.getProperty("CLIENT_ID");
}
public String getClientSecret(){
return properties.getProperty("CLIENT_SECRET");
}
因为这个类从磁盘读取属性文件,所以每次需要访问属性文件时都可以实例化它吗?或者我应该在应用程序启动时实例化它一次(可能是从单例Bean),然后从那里访问它?做这件事最好的方法是什么
应用程序启动后,属性不会更改。我只是在读它们,从不更新它们。我建议在启动时读一次文件,就像你说的那样,将它们保存在一个单独的文件中。因为我猜您的属性是一组键/值对的选择,它们并没有那么大,所以我认为它们应该在映射类型的数据结构中表现良好
根据您需要访问它们的频率,从磁盘读取它们的成本可能会很高。因为属性文件不会更改,所以在启动时只加载一个文件实例是有意义的。无需再次读取该文件