如何解决Aeonbits 所有者找不到属性和空参数
我正在使用来自 http://owner.aeonbits.org/docs/usage/ 的 aeonbits 的 Owner。我试图遵循这个简单的例子。好像可以加载示例中的42等默认值;然而,其他一切都是空的。这提示我它找不到文件。
我拥有的代码是完全复制和粘贴的。我的结构是否正确?如果没有,我该如何更正它以便正确加载属性文件和参数?根据文档,如果它为空,则无法定位文件位置。我相信只要类的位置位于同一位置,这应该可以工作。
项目结构:
//ClientInstance.java
public class ClientInstance {
public static void main(String[] args) {
String token = "abcxyz";
ServerConfig cfg = ConfigFactory.create(ServerConfig.class);
try{
System.out.println("Server " + cfg.hostname() + ":" + cfg.port() +
" will run " + cfg.maxThreads());
}catch(Exception e){
e.printStackTrace();
}
}
//ServerConfig.java
package com.github.advra.roxas;
import org.aeonbits.owner.Config;
public interface ServerConfig extends Config {
int port();
String hostname();
@DefaultValue("42")
int maxThreads();
}
//ServerConfig.peroperties
port=80
hostname=foobar.com
maxThreads=100
输出:
java.lang.NullPointerException
at com.sun.proxy.$Proxy3.port(Unknown Source)
at com.github.advra.roxas.ClientInstance.main(ClientInstance.java:20)
编辑:已解决
必须做两件事。在 ServerConfig.java 应用程序中的 interface ServerConfig extends config
行上方,我必须添加:
@Config.Sources({"classpath:ServerConfig.properties"})
那么 ServerConfig.properties 必须放在资源文件夹中才能工作。
我以前从未使用过属性,所以我不确定这是否正确。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。