Golang报表项目的Java重构过程(golang recover)

boyanx6天前技术教程2

最近,完成了从原先使用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相比没有什么优势。

标签: echarts模板

相关文章

基于Java的企业会计核算信息化管理系统的设计与实现:附论文+代码

1. 为什么这个毕设项目值得你 pick ?企业会计核算信息化智慧管理系统的设计与实现全面解析,以Java技术为核心构建。系统涵盖公司管理、货币管理、会计科目及凭证等13个主要功能模块,旨在提升企业管...

类型丰富的开源可视化图表库(开源可视化工作流)

Apache ECharts 是一个基于 JavaScript 的开源可视化图表库,它提供了丰富的图表类型和强大的数据可视化功能代码示例<!DOCTYPE html> <html&g...

技术架构规范与实践(二)架构设计示例

1.逻辑架构1.1领域概念1.2宏观应用架构1.3宏观流程1.4微服务拆分与分层2.技术架构3.开发架构3.1后端技术栈分类名称版本描述后端框架/组件JavaJdk8 (openjdk:8u342)后...

统计图形(I) - 网络统计学(统计分析图形)

统计图形具有直观、形象、生动、具体等特点,可以使复杂的统计数据简单化、通俗化、形象化,使人一目了然,便于理解和比较。统计图在统计资料整理与分析中占有重要地位,并得到广泛应用。一、统计图形、类型和结构1...

Deepseek竟然还能制作图表,真的太好用了!

今天跟大家分享下如何使用Deepseek来生成图表,操作也非常简单,我们只需要找到自己想要的图表模板,再替换为自己的数据就可以了。下面的图表都是deepseek生成的。我们来看下具体怎么做。一、了解E...

【重磅】JimuReport 积木报表 v2.0 版本发布,免费可视报表

项目介绍JimuReport 积木报表,是一款免费的数据可视化报表,含报表、打印、大屏和仪表盘,像搭建积木一样完全在线设计!功能涵盖:复杂报表、打印设计、图表报表、门户设计、大屏设计等!Web 版报表...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。