Golang报表项目的Java重构过程_golang recover

createh54周前 (02-19)技术教程10

最近,完成了从原先使用Golang生成报表的工程项目,到Java项目来重构。

【背景内容】

最初使用Golang,主要是由于语言自身的精简性。不管是搭建HTTP服务端,还是对传统数据库的数据获取,都有很方便的代码实现。另外的优势,可以生成面向各种操作系统的运行文件,并且都不大,很容易部署。这个尤其和Java,Nodejs比较,有很大的优势。

先前在很多项目中,使用了Golang来实现。体会语言的优势,也在熟悉和打磨。

用来生成报表的项目,数据库操作有点麻烦,所以也会继续使用Golang。在生成doc以及Pdf文件的方式上面,使用了Github中的docx(
github.com/nguyenthenguyen/docx),这是可以通过读取模板文件来生成Office文档的工具。模板和数据的分离,是比较高效的通过代码来实现生成文件的方式。在Golang中也有收费的office操作组件,unioffice。无奈收费太高,只能使用免费的。

其他主要使用的框架组件是Goframe,go-echarts。

【重构原因】

项目搭建完成后,生成的Office文件,总体效果一般,尤其使用go-echarts得到的柱状图,线形图的整体效果,不是特别理想。尤其在echarts中很多的属性项目,都需要通过相关的go-echarts的相关方法来实现,在没有很好的帮助文档帮助下,很多时候都需要重复尝试效果,在隔一段时间重新整理代码的时候,会无法明白当初这样写的原因。

另外出现的问题,就是将生成的charts图表文件,嵌入到word文档中的时候,图片的长宽设置,以及余白设置会出现配置问题。一直没有找到很好的,以逸待劳的办法。

【重构过程】

转来转去,还是回到使用Java的这条路。

Java中,目前比较成熟的框架就是Springboot,数据库使用的是Mybatis,数据对象来源的是MySQL和MongoDB,生成Offfice文档以及的echarts的库,则是使用Itext,freemarker,jfreechart。生成office和echarts,都是通过读取预先配置的模板文件,很好的能够解决后期的各种升级的问题,当然网络上关于这些都有比较多的疑难问题的解决方案。

在使用Mybatis时候,查询了相关视频和帮助文档,这套工具原先使用的不多,这次使用了MybatisX的工具,很方便的自动生成了配置代码。

项目中浪费了不少精力的内容,则是针对MongoDB操作。Golang和Nodejs都有接近MongoDB语法的操作语句,而在Java中则是偏向于对象的方法,一些常见的数据聚合操作,没有找到合适的方法,最后通过Java的流操作来实现。

部署的方法,倒没有怎么折腾,还是通常的docker方式,包文件大了不少,和Golang相比没有什么优势。

相关文章

三款老牌Java报表的对比_java web报表工具哪个好

在企业信息化建设中,报表工具是数据可视化与决策支持的核心组件。皕杰报表(BIOS Report)、润乾报表(Runqian Report)和帆软报表(FineReport)是国内市场上三款备受关注的报...

江苏泽超申请基于 JAVA 应用的报表开发方法专利,使得 Java 程序以更高效和更稳定的方式运行

金融界 2025 年 1 月 8 日消息,国家知识产权局信息显示,江苏泽超信息技术有限公司申请一项名为“基于 JAVA 应用的报表开发方法”的专利,公开号 CN 119250047 A,申请日期为 2...

Java敏捷开发框架 高效搭建数据报表

随着数字化转型在企业中不断深入推动,对企业的财务领域的转型也带来巨大的冲击。外部市场环境的快速变化,使企业经营者的决策时间从原来的几年和几个月缩短到几周甚至几天,组织架构影响首当其冲,无论是企业的法人...

「Java工具类」报表日期计算工具类,有图表统计的地方就有它

介绍语本头条号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+...

报表工具怎么选?JAVA开源工具那么好用,为什么大家还花钱买商用

做报表很长时间了,最近发现一个比较奇怪的现象:各家工具使出各种手段做广告、吸引注意力,但是受到程序员热烈追捧的反倒一直是 Jaspereport + ireport 这种免费、开源的 JAVA 工具,...

推荐5款开源报表工具_推荐5款开源报表工具软件

小编最近发现几款不错的开源报表,还提供源码,现在给大家分享一下,希望能给你带来帮助!1、项目名称: 积木报表项目简介:积木报表,免费的企业级WEB报表工具。专注于“专业、 易用 、优质”的报表设计器和...