系统在第一次运行时,需要初始化一些数据到mongoDB中,初始化数据是从源库导出的json,里面有字符不是标准的如"$oid", "$date"等,需要转成正常的java对象然后插入库。
jsonWriterSettings = JsonWriterSettings.builder().outputMode(JsonMode.RELAXED)
.dateTimeConverter(new JsonDateTimeConverter()).objectIdConverter(new ObjectIdConverter()).build();
private <T extends Entity> List<T> initData(String fileName, Class<T> entityClass) {
try (InputStream resourceAsStream = this.getClass().getResourceAsStream("/script/" + fileName)) {
List<T> entities = new ArrayList<>();
for (String readLine : IOUtils.readLines(resourceAsStream, StandardCharsets.UTF_8)) {
Document parse = Document.parse(readLine);
entities.add(JSONUtil.read(parse.toJson(jsonWriterSettings), entityClass));
}
return entities;
} catch (IOException e) {
log.error("初始化报错", e);
return Collections.emptyList();
}
}