使用Quartz编写定时任务获取天气数据,并存入Redis

该博客介绍了如何使用SpringBoot、Quartz定时任务库和Redis来实现天气数据的定期获取与存储。首先,博主讲解了准备环境,包括SpringBoot、Redis3.0和redis-desktop-manager客户端的安装与配置。接着,详细说明了如何将城市ID存储到XML文件,然后通过工具类将XML数据转化为Java Bean,并存储到Redis中。最后,博主展示了如何配置Quartz定时任务,定时从外部接口获取天气数据并更新到Redis中。
摘要由CSDN通过智能技术生成
准备:springboot, Redis3.0, redis-desktop-manager客户端

Redis3.0和redis-desktop-manager客户端下载
项目源码下载


Redis解压后,运行redis-server.exe,进入下面界面则启动成功,默认打开6379端口

在这里插入图片描述

redis-desktop-manager客户端直接安装运行即可。创建本地连接,进入一下界面则成功。

在这里插入图片描述

将需要获取的城市id放入xml文件中:

在这里插入图片描述

编写工具类,将xml中的数据转化问java Bean

创建实体类:

/**
 * CityList.java
 * 城市列表集合
 */
@Data
@XmlRootElement(name = "c") //根节点
@XmlAccessorType(XmlAccessType.FIELD)//通过字段的方式访问
public class CityList {
   
    @XmlElement(name = "d")
    private List<City> cityList;
}
/**
 * City.java
 * 城市
 */
@Data
@XmlRootElement(name = "d")//元素节点
@XmlAccessorType(XmlAccessType.FIELD)//通过字段的方式访问
public class City {
   
    @XmlAttribute(name = "d1")//元素属性
    private String cityId;
    @XmlAttribute(name = "d2")
    private String cityName;
    @XmlAttribute(name = "d3")
    private String cityCode;
    @XmlAttribute(name = "d4")
    private String province;
}
编写xml转化工具

通过JAXBContext提供的方法将XML实例文档反向生成Java对象树的方法

package com.waylau.spring.cloud.weather.util;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.Reader;
import java.io.StringReader;

/**
 * xml转化工具
 */
public class XmlBuilder {
   
    /**
     * 将xml转化为pojo
     * @param clazz
     * @param xmlStr
     * @return
     * @throws Exception
     */
    public static Object xmlStrToObject(Class<?> clazz, String xmlStr) throws Exception{
   
        // JAXB也提供了将XML实例文档反向生成Java对象树的方法
        JAXBContext context = JAXBContext.newInstance(clazz);
        // context提供 xml转为对象的接口
        Unmarshaller unmarshaller = context.createUnmarshaller();
        // 读取xml内容
        Reader reader = new StringReader(xmlStr);
        // 反编译
        Object xmlObject = unmarshaller.unmarshal(reader);
        if (null != reader){
   
            reader.close();
        }
        return xmlObject;
    }
}

xml转化Java对象

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值