最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)定時(shí)讀取json文件里內(nèi)容的示例代碼

 更新時(shí)間:2023年08月02日 09:29:44   作者:SoftwareDevOps  
有時(shí)候我們會(huì)需要定時(shí)來(lái)讀取JSON配置文件里的內(nèi)容,來(lái)執(zhí)行一些業(yè)務(wù)邏輯上的操作,本文就介紹了Java實(shí)現(xiàn)定時(shí)讀取json文件里內(nèi)容的示例代碼,感興趣的可以了解一下

項(xiàng)目背景

有時(shí)候我們會(huì)需要定時(shí)來(lái)讀取JSON配置文件里的內(nèi)容,來(lái)執(zhí)行一些業(yè)務(wù)邏輯上的操作。

比如:開(kāi)發(fā)一個(gè)物流運(yùn)輸系統(tǒng),系統(tǒng)需要定期讀取一個(gè)包含貨物信息的JSON文件并對(duì)其中的數(shù)據(jù)進(jìn)行處理和分析。這個(gè)JSON文件每天都會(huì)更新,包含了當(dāng)天所有待運(yùn)輸貨物的詳細(xì)信息,例如貨物名稱(chēng)、數(shù)量、重量等。

為了及時(shí)獲取最新的貨物信息并進(jìn)行后續(xù)處理,我們就需要編寫(xiě)一個(gè)程序,它能夠每天準(zhǔn)時(shí)自動(dòng)讀取這個(gè)JSON文件,并將讀取到的數(shù)據(jù)用于后續(xù)的業(yè)務(wù)邏輯。

代碼實(shí)現(xiàn)

讀取json配置文件

我們可以先寫(xiě)一個(gè)靜態(tài)方法,參數(shù)為json配置文件的路徑,然后再利用IO流來(lái)讀取配置文件,放到一個(gè)Map集合內(nèi)。

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"));
        //轉(zhuǎn)換為Map對(duì)象
        map = JSONObject.parseObject(str, LinkedHashMap.class);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return map;
}

再寫(xiě)一個(gè)forEache方法,來(lái)循環(huán)讀取Map里的數(shù)據(jù)集,做一些業(yè)務(wù)處理操作。

   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());
            //利用讀取的數(shù)據(jù)做一些業(yè)務(wù)操作
            ....
            readArticle(map.getValue().toString());
        }
    }

定時(shí)任務(wù)

Java 讀取json文件里的內(nèi)容已經(jīng)實(shí)現(xiàn),那么接下來(lái)就可以添加定時(shí)任務(wù),來(lái)定時(shí)去執(zhí)行。那么關(guān)于定時(shí)任務(wù),市面上也有很多方法,但今天這次就先用Java 8 自帶的Timer來(lái)實(shí)現(xiàn),不需要依賴(lài)什么jar包,輕量級(jí)的定時(shí)任務(wù)。

@Scheduled(fixedRate = 600000) // 每1分鐘執(zhí)行一次
public void executeTask() {
    forEache();
}

主要的就是添加這個(gè) @Scheduled 注解,它會(huì)自動(dòng)去執(zhí)行。

還有最后不要忘記在啟動(dòng)類(lèi)上,開(kāi)啟定時(shí)任務(wù)的注解。 @EnableScheduling

測(cè)試

由輸出結(jié)果,我們可以看出已經(jīng)可以讀取json配置文件中的內(nèi)容。其實(shí)市面上獲取json配置文件中的內(nèi)容多種多樣,但該方法用了極簡(jiǎn)的形式來(lái)實(shí)現(xiàn),代碼不多,還是很方便的。

到此這篇關(guān)于Java實(shí)現(xiàn)定時(shí)讀取json文件里內(nèi)容的示例代碼的文章就介紹到這了,更多相關(guān)Java定時(shí)讀取json內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java數(shù)據(jù)結(jié)構(gòu)常見(jiàn)幾大排序梳理

    Java數(shù)據(jù)結(jié)構(gòu)常見(jiàn)幾大排序梳理

    Java常見(jiàn)的排序算法有:直接插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序等。本文詳解介紹它們的實(shí)現(xiàn)以及圖解,需要的可以參考一下
    2022-03-03
  • Java接口和抽象類(lèi)原理詳解

    Java接口和抽象類(lèi)原理詳解

    這篇文章主要介紹了Java接口和抽象類(lèi)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Mybatis傳參為逗號(hào)分隔的字符串情形進(jìn)行in條件查詢(xún)方式

    Mybatis傳參為逗號(hào)分隔的字符串情形進(jìn)行in條件查詢(xún)方式

    這篇文章主要介紹了Mybatis傳參為逗號(hào)分隔的字符串情形進(jìn)行in條件查詢(xún)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot自定義對(duì)象參數(shù)實(shí)現(xiàn)自動(dòng)類(lèi)型轉(zhuǎn)換與格式化

    SpringBoot自定義對(duì)象參數(shù)實(shí)現(xiàn)自動(dòng)類(lèi)型轉(zhuǎn)換與格式化

    SpringBoot 通過(guò)自定義對(duì)象參數(shù),可以實(shí)現(xiàn)自動(dòng)類(lèi)型轉(zhuǎn)換與格式化,并可以級(jí)聯(lián)封裝,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-09-09
  • springboot讀取自定義配置文件時(shí)出現(xiàn)亂碼解決方案

    springboot讀取自定義配置文件時(shí)出現(xiàn)亂碼解決方案

    這篇文章主要介紹了springboot讀取自定義配置文件時(shí)出現(xiàn)亂碼解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • spring中bean id相同引發(fā)故障的分析與解決

    spring中bean id相同引發(fā)故障的分析與解決

    最近在工作中遇到了關(guān)于bean id相同引發(fā)故障的問(wèn)題,通過(guò)查找相關(guān)資料終于解決了,下面這篇文章主要給大家介紹了因?yàn)閟pring中bean id相同引發(fā)故障的分析與解決方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • 一次java異步任務(wù)的實(shí)戰(zhàn)記錄

    一次java異步任務(wù)的實(shí)戰(zhàn)記錄

    最近做項(xiàng)目的時(shí)候遇到了一個(gè)小問(wèn)題,從前臺(tái)提交到服務(wù)端A,A調(diào)用服務(wù)端B處理超時(shí),下面這篇文章主要給大家介紹了一次java異步任務(wù)的實(shí)戰(zhàn)記錄,需要的朋友可以參考下
    2022-05-05
  • 使用Maven進(jìn)行版本管理的詳細(xì)步驟

    使用Maven進(jìn)行版本管理的詳細(xì)步驟

    aven提供了一套強(qiáng)大的版本管理機(jī)制,允許開(kāi)發(fā)者管理項(xiàng)目的版本號(hào),并在不同的版本之間進(jìn)行升級(jí)和降級(jí),以下是如何使用Maven進(jìn)行版本管理的詳細(xì)步驟和代碼示例,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-11-11
  • SpringBoot項(xiàng)目加入沖突動(dòng)態(tài)監(jiān)測(cè)算法的實(shí)現(xiàn)

    SpringBoot項(xiàng)目加入沖突動(dòng)態(tài)監(jiān)測(cè)算法的實(shí)現(xiàn)

    沖突動(dòng)態(tài)監(jiān)測(cè)算法是一種網(wǎng)絡(luò)通信中的沖突檢測(cè)方法,適用于無(wú)線網(wǎng)絡(luò)或其他共享傳輸介質(zhì)的環(huán)境,本文主要介紹了SpringBoot項(xiàng)目加入沖突動(dòng)態(tài)監(jiān)測(cè)算法的實(shí)現(xiàn),感興趣的可以了解一下
    2023-09-09
  • MybatisPlus操作符和運(yùn)算值詳解

    MybatisPlus操作符和運(yùn)算值詳解

    在前端到后端的數(shù)據(jù)傳遞中,處理動(dòng)態(tài)運(yùn)算條件是一個(gè)常見(jiàn)的需求,本文介紹了如何在MybatisPlus中處理運(yùn)算符和運(yùn)算值的動(dòng)態(tài)拼接問(wèn)題,感興趣的朋友一起看看吧
    2024-10-10

最新評(píng)論

宿州市| 郎溪县| 页游| 永修县| 轮台县| 太仓市| 海口市| 大足县| 枣庄市| 武清区| 册亨县| 米林县| 上高县| 合山市| 辽宁省| 吐鲁番市| 黄龙县| 汾阳市| 浠水县| 休宁县| 靖边县| 南郑县| 涿州市| 绥中县| 新巴尔虎左旗| 徐闻县| 蒲城县| 灵丘县| 西畴县| 图们市| 河北省| 北流市| 呼玛县| 泾源县| 九龙县| 福建省| 昂仁县| 商南县| 安图县| 平塘县| 黄龙县|