惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V2EX - 技术
V2EX - 技术
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
S
Securelist
P
Privacy & Cybersecurity Law Blog
Scott Helme
Scott Helme
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
量子位
博客园 - Franky
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Latest news
Latest news
T
Troy Hunt's Blog
N
News | PayPal Newsroom
Google Online Security Blog
Google Online Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
小众软件
小众软件
P
Palo Alto Networks Blog
Spread Privacy
Spread Privacy
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
L
Lohrmann on Cybersecurity
L
LINUX DO - 最新话题
D
Darknet – Hacking Tools, Hacker News & Cyber Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Last Watchdog
The Last Watchdog
S
Security @ Cisco Blogs
P
Privacy International News Feed
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
T
Tailwind CSS Blog
博客园_首页
云风的 BLOG
云风的 BLOG
V
Vulnerabilities – Threatpost
D
DataBreaches.Net
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
罗磊的独立博客
Engineering at Meta
Engineering at Meta
Forbes - Security
Forbes - Security
T
Tenable Blog

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽 片刻 - Jdeal | Life is like a Design.
Java侧开源报表大屏 - jimureport 逆向学习及二开思路
Lcry · 2026-06-27 · via BlogFinder

背景:我司最近几个月都在调研大屏报表可视化的平台,以前客户为了灵活的做几个各种大屏报表和统计直接采购了帆软的,整个项目才 100 来万,然后帆软采购就要花近 10w,在这个比较卷的时代,针对于新客户我们在试图尝试降低客户的成本,自研或者二开一些可视化大屏组件,让从每次客户提出领导驾驶舱->需求调用->开发->上线这个流程转变为直接在线配置发布,大大的提高交付速度。

通过了解市面上的开源产品,并且协议友好的很少,不是半吊子就是只开源前端或者只开源后端,没有完整的商业案例。很多年前就使用过 jeecg 旗下的低代码和积木 report,但是由于官方这个产品是 开源协议:功能免费、可以商用、代码不开放,如果我们要自己做的话肯定得大概了解一下思路,于是进行了反编译学习底层思路,严厉声明:本文只用于交流学习使用,请勿直接用于商业用途,若侵权请邮件底部邮箱我删除。

介绍

积木报表(JimuReport)是一款免费的 AI 可视化报表。一句话描述需求,AI 自动生成报表与数据大屏;同时提供类 Excel 拖拽设计器,兼容 30 余种数据源,轻松应对各类复杂报表场景——帆软、Tableau 的高性价比开源替代。

GitHub:https://github.com/jeecgboot/JimuReport

  • AI 智能报表:自然语言描述需求,AI 自动生成数据报表、图表、明细表,告别繁琐手工设计
  • AI 智能大屏:一句话生成数据大屏,AI 自动完成布局、配色、组件选型,并智能绑定数据
  • Web 版报表设计器,类 Excel 操作风格,通过拖拽完成报表设计,所见即所得
  • 大屏采用类 word 风格,可以随意拖动组件,想怎么设计怎么设计,可以像百度和阿里一样,设计出炫酷大屏!
  • 从 v1.9+ 起推出 JimuBI 产品,她的牛叉之处,同时支持仪表盘、大屏、门户 (支持交互)、移动.
  • 秉承"简单、易用、专业"的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本。
  • 领先的企业级 Web 报表,支持各种复杂报表,专注于解决企业报表难题。
  • 数据可视化领域,帆软、Tableau、DataV 的高性价比开源替代方案,拥有更好的体验和更简单的使用方式

快速开始

在学习之前肯定是现跑起来,官方仓库就是有集成示例,我们直接拉取下来简单修改下数据库就可以跑起来,由于 v2.5.0 最近官方发布了 AI 功能,所以还需要配置一下 AI 相关的配置。

本文基于最新的 2.5.0 进行学习。

直接拉取:https://github.com/jeecgboot/jimureport/tree/master/jimureport-example 然后启动。readme 里面有详细说明这里不做过多解释。

启动成功了可以看到报表和 BI 两个界面,大概如下:

报表工作台:         http://localhost:8085/jmreport/list
BI大屏工作台:         http://localhost:8085/drag/list

Java侧开源报表大屏 - jimureport 逆向学习及二开思路

Java侧开源报表大屏 - jimureport 逆向学习及二开思路

逆向学习

我们直接反编译两个 jar 核心 jar 包。

jimureport-spring-boot3-starter、jimubi-spring-boot3-starter

我使用的工具是:https://github.com/skylot/jadx/releases,你也可以直接使用 IDEA 里面自带的反编译。

主要功能都在jimureport-spring-boot3-starter,看懂一个其实其他都一样。

反编译后直接让 AI 大概阅读一下。

整个 jar 包是采用的ProGuard 商业加固混淆的,只混淆了核心类,我们通过前端接口然后打断点还是可以看到具体的请求的,然后随便追踪一个方法发现静态资源文件前端都是在 .template 下的加密文件里,通过 debug 挨个看最终找到了解密的密钥,因为要渲染到前端必然需要把解密文件写在 jar 包里,所以这个不难。核心类就在:原始类org.jeecg.modules.a.a.a.a.java -> 最终原始名是org.jeecg.modules.a.a.a.FreeMarkerUtils。

由于只是学习,这里不讲破解流程。

主要前端代码就是 freemarker 模板文件写的,说实话这块维护工作量还是挺大的,官方一直采用这种方式都没有单开前端项目进行重构这是我不能理解,现在 AI 重构还是挺快的,估计也是历史包袱的原因,如果借鉴从 0 开始直接前后端重写了。

Java侧开源报表大屏 - jimureport 逆向学习及二开思路

后台操作全部都是 freemaker模板,当然你要进行进行修改或者调整也是很简单的了,而预览最终渲染是单独的项目最终编译打包完成后 js 文件直接做为资源访问,在 resource 目录下还发现了一些 script 的 py 脚本文件,部分界面上导出 excel 或者文件的时候采用的 python 脚本直接输出。

开源版本很多高级功能是没有的,如果采购官方正版那么应该是发一个全新的 jar 包过来的,不是通过代码的形式条件判断的。

后端主要就是通过 minidao 进行动态查询数据数据,通过 sql 动态查询数据库,api 是通过标准的工具类调用外部进行返回数据。由于自己不是做前端的,前端具体技术栈这里不过多描述。

要二开的话只能做 bug补丁修复,要完全二开是无法实现,官方定位就是只能使用不能进行自定义二开,半开源状态,如果只是个人使用可以完全没问题。

可以看几个官方示例,基本上主流的都是可以配置出来的。

Java侧开源报表大屏 - jimureport 逆向学习及二开思路

Java侧开源报表大屏 - jimureport 逆向学习及二开思路

后话

如果在官方开源协议前提下不改动任何逻辑若出现 bug 只能依靠官方的更新肯定是不行,那么我们可以通过二开的方式先快速修复 bug 然后反馈给官方。针对于部分代码存在问题的话排查后可以直接在项目中进行1:1 重写,通过双亲委派的机制会优先加载你项目中的类替换原始的类,但是不建议这样做,当官方升级了之后你每次都是反编译去做这些事,所以本文只针对于官方的混淆和加密逻辑进行了分析,主要是AES/RSA标准算法,无自定义变换。

jar 包只要放出来了几乎没有安全可言,这也给企业内部如果要做 license 强制商业化建议用其他语言来做底层,但是这个东西只防君子不防小人,本文仅供学习请勿用于商业用途。

最后说一句试用了一下jimureport 相对于帆软这种中型项目,可以完美去平替 datav 的大屏,前前前司有一年几个大屏一年几千,用就用那么一段时间,虽然功能没有帆软这种强大,但是中小企业还是可以基本上能满足,最近出的 2.5.0 带了 AI 功能体验了下还可以,直接文字描述生成报表简单调整下就 ok,这也是趋势。在这个产品的作用下,可以再结合 magic-api 动态 api 去扩展更强的场景,sql2api 结合动态报表几乎可以不动代码直接在线配置完成客户需求。

本文就写到这里。若对你有帮助或者交流项目请评论区留言。