我想加载一个yaml文件&将它存储在Config.java中。
这是我的yaml文件:(它更大。我给的是简化版)
---
application:
admin:
jobInterValTime: 1440
customer: lc
system:
mongo:
host: localhost
port: 27017
dbName: LC_Test
collections:
groupsCollection: groups
membershipCollection: memberships
personsCollection: persons
这是Config.java:
public class Config {
private Application application;
private System system;
//Getter setter
}
Application.java
public class Application {
private Admin admin;
//Getter Setter
}
Admin.java
public class Admin {
private String jobInterValTime;
private String customer;
//Getter Setter
}
System.java
public class System {
private Mongo mongo;
//Getter Setter
}
Mongo.java
public class Mongo {
private String host;
private String port;
private String dbName;
private Map<String, String> collections;
//Getter Setter
}
但是application
&amp; system
内的Config.java
对象变为空。没有异常发生。有人可以帮忙吗?
这是我写的。
Config config = null;
ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
try{
config = objectMapper.readValue(new File("src/test/java/resources/test1.yaml"), Config.class);
//System.out.println(application.getAdmin().getCustomer());
// System.out.println(unidataConfig.getApplication().getAdmin().getCustomer());
} catch(Exception e) {
e.printStackTrace();
}
答案 0 :(得分:0)
我不知道这里的根本原因,代码看起来不错。但您可以尝试的一件事是先将内容读作Map
或JsonNode
,然后查看结构的外观。可能存在不匹配。
答案 1 :(得分:0)
我解决了这个问题。这个错误非常愚蠢。在一个setter方法中,我写的是这样的:var1 = var1
而不是this.var1 = var1
。