Java實現(xiàn)定時讀取json文件里內(nèi)容的示例代碼
項目背景
有時候我們會需要定時來讀取JSON配置文件里的內(nèi)容,來執(zhí)行一些業(yè)務(wù)邏輯上的操作。
比如:開發(fā)一個物流運輸系統(tǒng),系統(tǒng)需要定期讀取一個包含貨物信息的JSON文件,并對其中的數(shù)據(jù)進(jìn)行處理和分析。這個JSON文件每天都會更新,包含了當(dāng)天所有待運輸貨物的詳細(xì)信息,例如貨物名稱、數(shù)量、重量等。
為了及時獲取最新的貨物信息并進(jìn)行后續(xù)處理,我們就需要編寫一個程序,它能夠每天準(zhǔn)時自動讀取這個JSON文件,并將讀取到的數(shù)據(jù)用于后續(xù)的業(yè)務(wù)邏輯。
代碼實現(xiàn)
讀取json配置文件
我們可以先寫一個靜態(tài)方法,參數(shù)為json
配置文件的路徑,然后再利用IO
流來讀取配置文件,放到一個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對象 map = JSONObject.parseObject(str, LinkedHashMap.class); } catch (Exception e) { e.printStackTrace(); } return map; }
再寫一個forEache方法,來循環(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()); } }
定時任務(wù)
Java 讀取json文件里的內(nèi)容已經(jīng)實現(xiàn),那么接下來就可以添加定時任務(wù),來定時去執(zhí)行。那么關(guān)于定時任務(wù),市面上也有很多方法,但今天這次就先用Java 8 自帶的Timer來實現(xiàn),不需要依賴什么jar包,輕量級的定時任務(wù)。
@Scheduled(fixedRate = 600000) // 每1分鐘執(zhí)行一次 public void executeTask() { forEache(); }
主要的就是添加這個 @Scheduled
注解,它會自動去執(zhí)行。
還有最后不要忘記在啟動類上,開啟定時任務(wù)的注解。 @EnableScheduling
測試
由輸出結(jié)果,我們可以看出已經(jīng)可以讀取json配置文件中的內(nèi)容。其實市面上獲取json配置文件中的內(nèi)容多種多樣,但該方法用了極簡的形式來實現(xiàn),代碼不多,還是很方便的。
到此這篇關(guān)于Java實現(xiàn)定時讀取json文件里內(nèi)容的示例代碼的文章就介紹到這了,更多相關(guān)Java定時讀取json內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot整合Excel填充數(shù)據(jù)代碼示例
這篇文章主要給大家介紹了關(guān)于springboot整合Excel填充數(shù)據(jù)的相關(guān)資料,文中通過代碼示例介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用springboot具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08Intellij IDEA使用restclient測試的教程圖解
這篇文章主要介紹了Intellij IDEA使用restclient測試的教程圖解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01java處理轉(zhuǎn)義字符↑ → ↓ 保存后的展示還原操作
這篇文章主要介紹了java處理轉(zhuǎn)義字符↑ → ↓ 保存后的展示還原操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06SpringBoot集成ip2region實現(xiàn)ip白名單的代碼示例
ip2region v2.0 - 是一個離線IP地址定位庫和IP定位數(shù)據(jù)管理框架,10微秒級別的查詢效率,提供了眾多主流編程語言的 xdb 數(shù)據(jù)生成和查詢客戶端實現(xiàn),本文介紹了SpringBoot集成ip2region實現(xiàn)ip白名單的代碼工程,需要的朋友可以參考下2024-08-08一步步講解Spring?Boot整合MyBatis與PostgreSQL實戰(zhàn)指南
這篇文章主要介紹了如何在SpringBoot環(huán)境中集成MyBatis和PostgreSQL,涵蓋了環(huán)境搭建、項目創(chuàng)建、數(shù)據(jù)源配置、實體類與Mapper接口定義、MapperXML文件編寫、業(yè)務(wù)層與控制層實現(xiàn)以及測試與驗證的全過程,需要的朋友可以參考下2025-02-02spring接口通過配置支持返回多種格式(xml,json,html,excel)
這篇文章主要給大家介紹了關(guān)于spring接口如何通過配置支持返回多種格式(xml,json,html,excel)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12