我正在练习使用名为PropertyLoader的单例类从属性文件访问属性,但我的maven项目无法在参考资料中找到该文件,并给出空指针例外。
这是类代码。
import java.io.IOException;
import java.util.Properties;
import org.apache.log4j.Logger;
public class PropertyLoader {
private static PropertyLoader instance = null;
private Properties properties;
private final static Logger LOGGER = Logger.getLogger(PropertyLoader.class.getName());
protected PropertyLoader() throws IOException {
//TODO: Fix problem with loading properties file below
properties = new Properties();
properties.load(PropertyLoader.class.getResourceAsStream("app.properties"));
}
public static PropertyLoader getInstance() {
if(instance == null) {
try {
instance = new PropertyLoader();
} catch (IOException ioe) {
LOGGER.error("Error Occurred while creating Property Loader instance: " + ioe.getMessage());
}
}
return instance;
}
public String getValue(String key) {
LOGGER.info("Getting property value for: " + key);
return properties.getProperty(key);
}
}
错误我得到:
异常线程"main"java.lang.NullPointerExctive: inStream参数在java.base/java.util.Objects.requireNonNull(Objects.java:247)在java.base/java.util.Properties.load(Properties.java:404)在in.net.sudhir.evernote.client.batchjob.属性加载器为null。(oader.java:16)在in.net.sudhir.evernote.client.batchjob.属性oader.get实例(属性oader.java:23)在in.net.sudhir.evernote.client.batchjob.Evernote Client。(Evernote Client.java:51)在in.net.sudhir.evernote.client.batchjob.BatchProcess.main(BatchProcess.java:33)
以下是项目结构的屏幕截图。
IntelliJ IDEA中的项目结构
properties = new Properties();
try(InputStream inputStream = PropertyLoader.class.getClassLoader().getResourceAsStream("app.properties")) {
if(inputStream == null)
throw new FileNotFoundException("File not found in classpath");
properties.load(inputStream);
}
注意:在构造函数中进行计算是不好的做法。最好创建一些加载资源文件的方法。
我想通过.properties文件配置bean字符串字段。但它并不替换值键,这意味着它回显“${value}”字符串。我的代码如下:
问题内容: 我在我的应用程序中使用ArrayList。 我想知道从Singleton类初始化ArrayList的确切过程。 该数据将在其他一些活动中使用。 有人可以帮助了解Singleton课堂吗? 问题答案: 这是创建单例类的方法: 任何需要调用arrayList的地方都可以: 要将元素添加到数组,请使用: 要么
我在google drive中创建了一个服务帐户,用于从服务器上传google drive中的文件,并在以后下载这些文件。但是当我试图获取文件夹的文件列表并获取这些文件的时,它返回了null。我检查了它的其他一些属性,除了文件名和文件ID之外,和都返回null。 有人能帮我获得吗?或者你能找出为什么我不能获得的问题。 下面是我尝试的一部分代码: 下面是一个输出
如果有人能帮忙,那就太好了!
我最近创建了一个新的AWS帐户(我们称之为“帐户a”),并在这个帐户中创建了一个S3 bucket(我们称之为“bucketa”),上传了一个文件foo.txt。根据来自internet的建议,我设置了我认为是最允许的桶策略(它应该允许任何用户进行任何类型的访问): 为什么帐户B不能访问bucketa,尽管它的桶策略非常允许?是否需要设置其他AWS帐户的公共访问权限? 注意:我已经排除了帐户B的.
问题内容: 我有几个小时的问题,我尝试了在教程中找到的所有解决方案。很简单:我无法访问资源文件。我尝试打开已放入和的文件。 我有一个简单的Java项目,并且使用Maven(带有Eclipse作为IDE)和m2e插件。我想在Maven中使用具有不同配置文件的资源过滤功能,这是我的: 我在src / java / test中做了一个简单的测试: 因此,在Eclipse中,我运行了(在我的项目文件夹中的