我是maven
和Java
的新手。我正在开发一个使用Spring Web框架的大型代码库。我可能缺少基本面,但我已尽力完成项目实施的所有基础知识
对于我正在构建的功能,我有以前保存在src / main / resources中的属性文件
我的maven项目,正在使用此声明从我的名为ReaderClass
的类中读取
ReaderClass.class.getResourceasStream("xyz.properties");
现在我将这些文件外化到一个单独的项目中,并用它构建了一个jar。此jar只在名为resource的文件夹下具有属性文件
我已将此jar文件添加为IntelliJ IDE中的依赖项,并希望从此jar中读取属性文件。如果它是.class文件,我会在ReaderClass
中使用import语句但是我如何读取属性文件?
其他信息
此外,我不确定这是否是一个问题,但IntelliJ实际上并没有在外部库选项卡中显示jar,但确实在项目结构中的模块部分的依赖项选项卡中显示了我的jar。我想确保这不会影响解决方案。
答案 0 :(得分:2)
如果您使用的是Spring,请尝试
@Value("${property.name}")
private String property;
从资源文件夹中读取属性。
答案 1 :(得分:-1)
有很多方法可以做到这一点。
假设您的xyz.properties
文件如下所示:
a=b
y=z
mykey=myvalue
使用java.util.ResourceBundle
如果您不需要将读取数据作为Properties
对象传递,这是最简单的方法。
ResourceBundle rb = ResourceBundle.getBundle("xyz");
System.out.println("a=" + rb.getString("a"));
使用java.util.Properties
更多的工作和一些锅炉,但完成同样的事情。
Properties p = new Properties();
try (InputStream is = getClass().getClassLoader().getResourceAsStream("xyz.properties")) {
p.load(is);
}
catch (IOException e) {
// Handle as appropriately.
}
System.out.println("mykey=" + p.getProperty("mykey"));