Java实现定时读取json文件里内容的示例代码

 更新时间:2023年08月02日 09:29:44   作者:SoftwareDevOps  
有时候我们会需要定时来读取JSON配置文件里的内容,来执行一些业务逻辑上的操作,本文就介绍了Java实现定时读取json文件里内容的示例代码,感兴趣的可以了解一下

项目背景

有时候我们会需要定时来读取JSON配置文件里的内容,来执行一些业务逻辑上的操作。

比如:开发一个物流运输系统,系统需要定期读取一个包含货物信息的JSON文件并对其中的数据进行处理和分析。这个JSON文件每天都会更新,包含了当天所有待运输货物的详细信息,例如货物名称、数量、重量等。

为了及时获取最新的货物信息并进行后续处理,我们就需要编写一个程序,它能够每天准时自动读取这个JSON文件,并将读取到的数据用于后续的业务逻辑。

代码实现

读取json配置文件

我们可以先写一个静态方法,参数为json配置文件的路径,然后再利用IO流来读取配置文件,放到一个Map集合内。

public static Map getMap(String path) {
    Map map = new LinkedHashMap();
    try {
        //路径
        ClassPathResource classPathResource = new ClassPathResource(path);
        //读取文件信息
        String str = IOUtils.toString(new InputStreamReader(classPathResource.getInputStream(), "UTF-8"));
        //转换为Map对象
        map = JSONObject.parseObject(str, LinkedHashMap.class);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return map;
}

再写一个forEache方法,来循环读取Map里的数据集,做一些业务处理操作。

   public static void forEache() {
        Map<String, String> result = BaseUtils.getMap("/config/data.json");
        for (Map.Entry map : result.entrySet()) {
            System.out.println(map.getValue().toString());
            //利用读取的数据做一些业务操作
            ....
            readArticle(map.getValue().toString());
        }
    }

定时任务

Java 读取json文件里的内容已经实现,那么接下来就可以添加定时任务,来定时去执行。那么关于定时任务,市面上也有很多方法,但今天这次就先用Java 8 自带的Timer来实现,不需要依赖什么jar包,轻量级的定时任务。

@Scheduled(fixedRate = 600000) // 每1分钟执行一次
public void executeTask() {
    forEache();
}

主要的就是添加这个 @Scheduled 注解,它会自动去执行。

还有最后不要忘记在启动类上,开启定时任务的注解。 @EnableScheduling

测试

由输出结果,我们可以看出已经可以读取json配置文件中的内容。其实市面上获取json配置文件中的内容多种多样,但该方法用了极简的形式来实现,代码不多,还是很方便的。

到此这篇关于Java实现定时读取json文件里内容的示例代码的文章就介绍到这了,更多相关Java定时读取json内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java数据结构常见几大排序梳理

    Java数据结构常见几大排序梳理

    Java常见的排序算法有:直接插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序等。本文详解介绍它们的实现以及图解,需要的可以参考一下
    2022-03-03
  • Java接口和抽象类原理详解

    Java接口和抽象类原理详解

    这篇文章主要介绍了Java接口和抽象类原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Mybatis传参为逗号分隔的字符串情形进行in条件查询方式

    Mybatis传参为逗号分隔的字符串情形进行in条件查询方式

    这篇文章主要介绍了Mybatis传参为逗号分隔的字符串情形进行in条件查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • SpringBoot自定义对象参数实现自动类型转换与格式化

    SpringBoot自定义对象参数实现自动类型转换与格式化

    SpringBoot 通过自定义对象参数,可以实现自动类型转换与格式化,并可以级联封装,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • springboot读取自定义配置文件时出现乱码解决方案

    springboot读取自定义配置文件时出现乱码解决方案

    这篇文章主要介绍了springboot读取自定义配置文件时出现乱码解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • spring中bean id相同引发故障的分析与解决

    spring中bean id相同引发故障的分析与解决

    最近在工作中遇到了关于bean id相同引发故障的问题,通过查找相关资料终于解决了,下面这篇文章主要给大家介绍了因为spring中bean id相同引发故障的分析与解决方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • 一次java异步任务的实战记录

    一次java异步任务的实战记录

    最近做项目的时候遇到了一个小问题,从前台提交到服务端A,A调用服务端B处理超时,下面这篇文章主要给大家介绍了一次java异步任务的实战记录,需要的朋友可以参考下
    2022-05-05
  • 使用Maven进行版本管理的详细步骤

    使用Maven进行版本管理的详细步骤

    aven提供了一套强大的版本管理机制,允许开发者管理项目的版本号,并在不同的版本之间进行升级和降级,以下是如何使用Maven进行版本管理的详细步骤和代码示例,感兴趣的小伙伴跟着小编一起来看看吧
    2024-11-11
  • SpringBoot项目加入冲突动态监测算法的实现

    SpringBoot项目加入冲突动态监测算法的实现

    冲突动态监测算法是一种网络通信中的冲突检测方法,适用于无线网络或其他共享传输介质的环境,本文主要介绍了SpringBoot项目加入冲突动态监测算法的实现,感兴趣的可以了解一下
    2023-09-09
  • MybatisPlus操作符和运算值详解

    MybatisPlus操作符和运算值详解

    在前端到后端的数据传递中,处理动态运算条件是一个常见的需求,本文介绍了如何在MybatisPlus中处理运算符和运算值的动态拼接问题,感兴趣的朋友一起看看吧
    2024-10-10

最新评论