当前位置: 首页 > news >正文

通用查询类接口数据更新的另类实现

文章目录

  • 一、简要概述
  • 二、java工程实现
    • 1. 定义main方法
    • 2. 测试运行
    • 3. 源码放送

一、简要概述

我们在通用查询类接口开发的另类思路中,关于接口数据的更新,提出了两种方案:

  1. 文件监听
监听目录
解析变动文件
写入结果文件

2.定时任务

接口获取数据
处理数据
写入结果文件

以上方案,虽然实现了数据更新写入结果文件,但在结果文件的指定上稍麻烦

联想到lunix下有如下命令,可实现将结果输出到指定的文件中:

echo 'hello world!' > 1.txt

试着执行:

echo "{\"_index\":\"book_shop\",\"_type\":\"it_book\",\"_id\":\"1\",\"_score\":1.0, \"_source\":{\"name\": \"Java编程思想(第4版)\",\"author\": \"[美] Bruce Eckel\",\"category\": \"编程语言\", \"price\": 109.0,\"publisher\": \"机械工业出版社\",\"date\": \"2007-06-01\",\"tags\": [ \"Java\", \"编程语言\" ]}}" > /work/2.txt

发现可以把json字符串写入指定文件,> 后面的路径,如上面的1.txt、/work/2.txt可以为相对路径绝对路径

二、java工程实现

我们只需要实现:在main方法中将结果的json字符串输出

注意点: 需要避免将日志打印到console,具体解决办法为日志使用slf4j,并引入slf4j-simple或slf4j-nop

1. 定义main方法


import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;import com.fly.json.entity.Article;
import com.fly.json.entity.BlogData;
import com.fly.json.entity.Record;
import com.fly.json.utils.JsonBeanUtils;
import com.fly.json.utils.ShellExecutor;import lombok.extern.slf4j.Slf4j;/*** 使用slf4j-simple(或slf4j-nop)规避log4j-slf4j-impl将日志打印到console<br>* slf4j-simple默认情況下只输出info以上(包含info)级別的日志, 且仅把日志输入到System.err* */
@Slf4j
public class JsonDataPrint
{/*** 验证: syso输出内容,jar运行可写入文件<br>* 运行:java -jar easy-json-0.0.1.jar > /work/1.txt* * @param args* @throws IOException*/public static void main(String[] args)throws IOException{// windows下Jar运行返回值中文乱码,unix下Jar运行返回值正常List<Article> articles = IntStream.rangeClosed(1, 2).mapToObj(i -> String.format("curl -e \"blog.csdn.net\" \"https://blog.csdn.net/community/home-api/v1/get-business-list?page=%s&size=10&businessType=blog&username=qq_16127313\"", i)).map(cmd -> ShellExecutor.execute(cmd)).map(json -> parseToBlogData(json)).filter(blog -> blog != null).map(blog -> blog.getData().getList()).flatMap(List::stream).collect(Collectors.toList());// 构造对象BlogData blogData = new BlogData().setData(new Record().setList(articles));String jsonData = JsonBeanUtils.beanToJson(blogData, true);System.out.println(jsonData);}/*** 解析json为BlogData* * @param json* @return*/private static BlogData parseToBlogData(String json){try{return JsonBeanUtils.jsonToBean(json, BlogData.class, true);}catch (IOException e){log.error(e.getMessage(), e);return null;}}
}

2. 测试运行

在项目根目录执行mvn clean package 会生成jar和docker镜像文件,注意需要在安装了java、maven、docker环境执行。

然后按下面的方式运行,便可实现随时灵活指定输出文件位置的功能。

java -jar easy-json-0.0.1.jar > /work/data.jsondocker run registry.cn-shanghai.aliyuncs.com/00fly/easy-json:0.0.1 > data.json

3. 源码放送

https://gitcode.com/00fly/easy-json


有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

相关文章:

通用查询类接口数据更新的另类实现

文章目录 一、简要概述二、java工程实现1. 定义main方法2. 测试运行3. 源码放送 一、简要概述 我们在通用查询类接口开发的另类思路中&#xff0c;关于接口数据的更新&#xff0c;提出了两种方案&#xff1a; 文件监听 #mermaid-svg-oJQjD6jQ8T19XlHA {font-family:"tre…...

Linux ls 命令

Linux ls&#xff08;英文全拼&#xff1a; list directory contents&#xff09;命令用于显示指定工作目录下之内容&#xff08;列出目前工作目录所含的文件及子目录)。 语法 ls [-alrtAFR] [name...] 参数 : -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)-d 只列出目…...

【问题记录】Go项目Docker中的consul访问主机8080端口被拒绝

【问题记录】Go项目Docker中的consul访问主机8080端口被拒绝 问题展示解决办法 问题展示 在使用docker中的consul服务的时候&#xff0c;通过命令行注册相应的服务&#xff08;比如cloudwego项目的demo_proto以及user服务&#xff09;失败。 解决办法 经过分析&#xff0c;是…...

面试题:说一下你对DDD的了解?

面试题:说一下你对DDD的了解? 在面试中,关于 DDD(领域驱动设计,Domain-Driven Design) 的问题是一个常见的技术考察点。DDD 是一种软件设计方法论,旨在通过深入理解业务领域来构建复杂的软件系统。以下是一个清晰、详细的回答模板,帮助你在面试中脱颖而出: DDD 的定义…...

React低代码项目:问卷编辑器 I

问卷编辑器 Date: February 20, 2025 4:17 PM (GMT8) 目标 完成问卷编辑器的设计和开发完成复杂系统的 UI 组件拆分完成复杂系统的数据结构设计 内容 需求分析技术方案设计开发 注意事项&#xff1a; 需求指导设计&#xff0c;设计指导开发。前两步很重要页面复杂的话&…...

蓝桥杯2024年真题java B组 【H.拼十字】

蓝桥杯2024年真题java B组 【H.拼十字】 原题链接&#xff1a;拼十字 思路&#xff1a; 使用树状数组或线段树解决。 先将输入的信息存入到一个n行3列的数组中&#xff0c;将信息排序&#xff0c;按照长度小到大&#xff0c;长相同时&#xff0c;宽度小到大 排序。 建立三个…...

Spring MVC 程序开发(1)

目录 1、什么是 SpringMVC2、返回数据2.1、返回 JSON 对象2.2、请求转发2.3、请求重定向2.4、自定义返回的内容 1、什么是 SpringMVC 1、Tomcat 和 Servlet 分别是什么&#xff1f;有什么关系&#xff1f; Servlet 是 java 官方定义的 web 开发的标准规范&#xff1b;Tomcat 是…...

PyCharm接入本地部署DeepSeek 实现AI编程!【支持windows与linux】

今天尝试在pycharm上接入了本地部署的deepseek&#xff0c;实现了AI编程&#xff0c;体验还是很棒的。下面详细叙述整个安装过程。 本次搭建的框架组合是 DeepSeek-r1:1.5b/7b Pycharm专业版或者社区版 Proxy AI&#xff08;CodeGPT&#xff09; 首先了解不同版本的deepsee…...

Linux服务升级:Almalinux 升级 DeepSeek-R1

目录 一、实验 1.环境 2.Almalinux 部署 Ollama 3.Almalinux 升级 DeepSeek-R1 4.Almalinux 部署 docker 5. docker 部署 DeepSeek-R1 6.Almalinux 部署 Cpolar (内网穿透) 7.使用cpolar内网穿透 二、问题 1.构建容器失败 一、实验 1.环境 &#xff08;1&#xff09…...

Linux操作系统5- 补充知识(可重入函数,volatile关键字,SIGCHLD信号)

上篇文章&#xff1a;Linux操作系统5-进程信号3&#xff08;信号的捕捉流程&#xff0c;信号集&#xff0c;sigaction&#xff09;-CSDN博客 本篇Gitee仓库&#xff1a;myLerningCode/l26 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 目录 一. 可重入…...

ctfshow刷题笔记—栈溢出—pwn61~pwn64

目录 前言 一、pwn61&#xff08;输出了什么&#xff1f;&#xff09; 二、pwn62&#xff08;短了一点&#xff09; 三、pwn63(又短了一点) 四、pwn64(有时候开启某种保护并不代表这条路不通) 五、一些shellcode 前言 这几道都是与shellcode有关的题&#xff0c;实在是…...

java23种设计模式-责任链模式

责任链模式(Chain of Responsibility Pattern)学习笔记 编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793 DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/145884039 🌟 模式定义 责任链模式是…...

新一代跨境电商ERP系统:从订单到发货的全流程自动化管理

随着全球电商市场的持续扩张&#xff0c;跨境电商卖家面临着多平台运营、国际物流、税务合规等复杂挑战。如何高效整合订单、库存、物流和财务数据&#xff0c;实现从客户下单到商品交付的无缝衔接&#xff0c;成为企业降本增效的关键。Zoho Books作为一款专为跨境商家设计的智…...

苹果廉价机型 iPhone 16e 影像系统深度解析

【人像拍摄差异】 尽管iPhone 16e支持后期焦点调整功能&#xff0c;但用户无法像iPhone 16系列那样通过点击屏幕实时切换拍摄主体。前置摄像头同样缺失人像深度控制功能&#xff0c;不过TrueTone原彩闪光灯系统在前后摄均有保留。 很多人都高估了 iPhone 的安全性&#xff0c;查…...

hive 面试题

Hive基础概念 1.1 Hive是什么&#xff1f; 基于Hadoop的数据仓库工具&#xff0c;支持类SQL&#xff08;HiveQL&#xff09;查询&#xff0c;底层转换为MapReduce/Tez/Spark任务。 核心功能&#xff1a;数据ETL、查询、分析&#xff1b;定位&#xff1a;OLAP&#xff08;分析…...

VScode在windows10上使用clang-format

用途&#xff1a;自动调整代码格式&#xff0c;如缩进等。 clang-format官方文档&#xff1a;ClangFormat — Clang 21.0.0git documentation 前提&#xff1a;有一个.clang-format文件 下载LLVM&#xff1a;https://github.com/llvm/llvm-project/releases&#xff0c;将可…...

AWS API Gateway灰度验证实现

在微服务架构中,灰度发布(金丝雀发布)是验证新版本稳定性的核心手段。通过将小部分流量(如 10%)导向新版本服务,可以在不影响整体系统的情况下快速发现问题。AWS API Gateway 原生支持流量按比例分配功能,无需复杂编码即可实现灰度验证。本文将详细解析其实现方法、最佳…...

【每日八股】MySQL篇(三):索引(上)

目录 MySQL 为什么使用 B 树来做索引&#xff0c;它的优势是什么&#xff1f;特性和定义B 树和 B 树的对比拓展&#xff1a;既然 B 树相较于 B 树优势如此之大&#xff0c;为什么 nosql 的 MongoDB 底层仍采用 B 树而不是 B 树&#xff1f; 使用 B 树做索引的优势补充&#xff…...

在Pycharm中将ui文件修改为py文件

在Pycharm中将ui文件修改为py文件 有些时候&#xff0c;我们需要把QTDesigner生成的.ui文件修改为.py文件 在一些教程中&#xff0c;通常使用cmd打开终端修改&#xff0c;或者是有一些人写了一些脚本来修改 这里我们可以使用pycharm来快速的修改 首先&#xff0c;我们在pyc…...

看视频学习方法总结

以下是提高教学视频吸收率的系统性方法&#xff0c;结合认知科学原理和实际学习场景&#xff0c;帮助您最大化学习效果&#xff1a; 一、观看前的黄金准备阶段 60秒快速扫描法 用1分钟快速浏览视频目录、章节标题和简介&#xff0c;建立知识框架。荷兰伊拉斯姆斯大学实验表明&…...

文档下载神器kill-doc:如何快速免费下载30+平台的文档资源

文档下载神器kill-doc&#xff1a;如何快速免费下载30平台的文档资源 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为…...

Palantir 现在干的活,本质上就是你描述的那个方向,但它在“深度”和“广度”上比你目前的 MVP 设想走得更远。如果说你想做的是一个“能听懂人话的 SQL 查询工具”,那么 Palantir

Palantir 现在干的活&#xff0c;本质上就是你描述的那个方向&#xff0c;但它在“深度”和“广度”上比你目前的 MVP 设想走得更远。如果说你想做的是一个“能听懂人话的 SQL 查询工具”&#xff0c;那么 Palantir 构建的是一个 “企业级的数字孪生操作系统”。它不仅仅是在“…...

工业智能网关:三菱FX3U PLC数据采集

调试准备&#xff1a; 需要准备的材料&#xff1a;HINET 智能网关、现场安装三菱 FX3U、网线等&#xff1b;网关和 PLC 的连接方式&#xff1a;网关 LAN 口直接和 PLC 网线连接&#xff1b; PLC 和网关的 IP 地址以及现场联网条件说明&#xff1a; 三菱 FX3U 的 IP&#xff1a;…...

群晖NAS远程SSH配置全解:从权限控制到独立模式实战

1. 为什么群晖的SSH不是“开个开关”就完事——从权限失控风险说起群晖NAS作为家用与小型办公场景中最普及的存储设备&#xff0c;很多人买来装好硬盘、配好共享文件夹&#xff0c;就觉得万事大吉。直到某天想批量处理照片缩略图、想用rsync做异地备份、想部署一个轻量级服务&a…...

如何快速掌握猫抓工具:终极视频嗅探与下载指南

如何快速掌握猫抓工具&#xff1a;终极视频嗅探与下载指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页上的精彩视频无法保存而烦恼吗…...

3步告别GitHub英文界面:GitHub中文化插件终极解决方案

3步告别GitHub英文界面&#xff1a;GitHub中文化插件终极解决方案 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub的英文…...

龙芯LS2K PMON启动全解析:从内核到U盘识别的奥秘

【龙芯LS2K PMON终极干货】整机设备启动全景图:从 mainbus 开机到 U 盘识别全流程 一、整篇总纲(最强一句话) 内核启动 → 读 ioconf.c/cfdata 硬件族谱 → 从根总线 mainbus 开始遍历 → 逐级 attach 设备 → 启动 PCI → 扫描到 OTG 控制器 → 加载 dwc2 驱动 → 开启 U…...

Unity预加载:减少游戏中首次加载资源时的卡顿

遇到的问题&#xff0c;如标题所示&#xff0c;所以写了如下模块。模块功能就是初始化时候&#xff0c;加载零散/文件夹的物体&#xff0c;代码如下&#xff1a;#region 启动预加载模块/// <summary> 预加载间隔&#xff08;分帧防卡顿&#xff09; </summary>priv…...

Gitea库完整从Ubuntu迁移到CentOS中

文章目录 一、概述 二、数据迁移 2.1 获取数据存储路径 2.2 搞事之前先备份(目标服务器CentOS) 2.2.1 停止gitea服务 2.2.2 备份gitea文件夹 2.3 从Ubuntu的数据目录中将数据拷贝到CentOS中 2.4 备份mysql数据库并拷贝到目标服务器(CentOS) 2.4.1 通过mysqldump备份数据库 …...

桌面图标变白纸别慌!手把手教你用右键属性+路径复制,5分钟找回所有软件图标

桌面图标异常修复指南&#xff1a;从白纸图标到完整恢复的实战解析 电脑桌面上那些熟悉的图标突然变成白纸&#xff0c;这种看似小问题却让人倍感困扰。不必惊慌&#xff0c;这通常是系统图标缓存更新不及时或软件关联异常导致的常见现象。本文将带你深入理解图标显示机制&…...