概观
在这篇文章中,我们将介绍如何创建一个使用Web服务数据并将其插入MongoDB数据库的Spring Batch应用程序。
要求
阅读本文的开发人员必须熟悉Spring Batch(示例)和MongoDB。
环境
-
Mongo数据库部署在MLab中。请按照本快速入门中的步骤操作。
-
IDE STS或IntelliJ或Eclipse。
-
Java 8 JDK。
注意:批处理也可以在本地运行。
脚本
全局场景步骤是:
- 从Web服务读取数据,在这种情况下:https://sunrise-sunset.org/api
获取城市列表的坐标,然后调用API以读取日出和日落日期时间。
2.处理数据并提取业务数据
收集数据的业务处理
3.在MongoDB中插入已处理的数据
将处理过的数据保存为mongo文档
编码
- 输入:本地文件中JSON格式的城市数据列表,如下所示:
[
{
“名字”:“Danemark”,
“城市”:[
{
“名字”:“Copenhague”,
“lat”:55.676098,
“lng”:12.568337,
“timeZone”:“CET”
},
{
“名字”:“奥胡斯”,
“lat”:56.162939,
“lng”:10.203921,
“timeZone”:“CET”
},
{
“名字”:“欧登塞”,
“lat”:55.39594,
“lng”:10.38831,
“timeZone”:“CET”
},
{
“名字”:“奥尔堡”,
“lat”:57.046707,
“lng”:9.935932,
“timeZone”:“CET”
}
]
}
]
我们的场景从本地json文件获取输入数据。映射bean如下:
国豆:
导入 java。io。可序列化 ;
导入 java。util。清单 ;
进口 com。fastxml。杰克逊。注释。JsonIgnoreProperties ;
@JsonIgnoreProperties(ignoreUnknown = true)
public class BCountry 实现 Serializable {
private static final long serialVersionUID = 1L ;
私有 字符串 名称 ;
私人 名单< BCity > 城市 ;
public BCountry(){
super();
}
public BCountry(String name,List < BCity > cities){
super();
这个。name = name ;
这个。城市 = 城市 ;
}
public BCountry(String name){
super();
这个。name = name ;
}
public String getName(){
返回 名称 ;
}
public void setName(String name){
这个。name = name ;
}
public List < BCity > getCities(){
返回 城市 ;
}
public void setCities(List < BCity > cities){
这个。城市 = 城市 ;
}
@覆盖
public int hashCode(){
final int prime = 31 ;
int result = 1 ;
结果 = 黄金 * 结果 +((城市 == 空)? 0:城市。的hashCode());
结果 = 黄金 * 结果 +((名称 == 空)? 0