07 2023 档案
Redis的五大数据类型及其使用场景
摘要:
redis是一个非常快速的非关系数据库解决方案。其简单的键值数据模型使 Redis 能够处理大型数据集,同时保持令人印象深刻的读写速度和可用性。redis提供了五种数据类型,分别是是:1、string(字符串);2、hash(哈希);3、list(列表);4、set(集合);5、sort set (有序集合)(其实随着 Redis 版本的更新,后面又支持了四种数据类型:BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增),本文暂不作介绍。)。接下我就给大家介绍一下这五种数据类型的基本用法和使用场景。
阅读全文

封装图片处理工具类,实现图片的裁剪、压缩、图片水印、文字水印、多行文字水印等功能
摘要:
最近用结合thumbnailator和Graphics2D封装了一个图片工具类,目前可以实现图片的裁剪、压缩、添加图片水印、文字水印、多行文字水印等功能,同时该工具类的实现使用了建造者模式、责任链模式、工厂模式、策略模式等多种设计模式,感觉图片处理的功能有一定的通用性,所以这次写一篇文章来分享一下这个工具类的使用方式和实现原理,代码不足之处还望大家指正,文末也会提供代码的github地址。
2、简单的使用
首先这个处理类提供了一个建造简化了工具栏使用,下面一个简单的使用示例,实现了图的裁剪裁剪,从这个示例代
阅读全文

根据模板动态生成word(三)使用poi-tl生成word
摘要:
poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库。同类型的FreeMarker或Velocity基于文本模板和数据生成新的html页面或配置文件。而poi tl是一个基于Word模板和数据生成新文档的Word模板引擎。Word模板具有丰富的样式。Poi-tl将在生成的文档中完美地保留模板中的样式。也可以设置标记的样式。标记的样式将应用于替换的文本,因此您可以专注于模板设计。poi-tl是一个“无逻辑”模板引擎。
阅读全文

根据模板动态生成word(二)使用poi生成word
摘要:
@[toc] # 一、准备模板 ## 1、创建模板文件 创建一个word文件,输入如下图所示的内容:  #
阅读全文

根据模板动态生成word(一)使用freemarker生成word
摘要:
如果模板里需要用变量填充表格,建议模板里的表格像word文件一样建一个两行的表格。但是这样是freemaker是无法成功替换变量的,所以需要手动处理成到一个段里(如图2),关于这点实在太无语了,因为没有找到比较好的处理办法,只能手工处理,在实际的开发工作中曾经花了几个小时来做这件事情。根据模板文件生成word,主要生成的word的文件后缀必须是doc不能是docx,不然生成的文件无法打开。首先先建立一个word文件,输入模板内容freemaker的内容,下面是本次演示的word文件。
阅读全文

文档在线预览 总结篇
摘要:
1、转成图片的方式和转成html,都存在一定的问题,比如转图片的都是存在要处理多图片的问题,转html存在复杂样式丢失的问题。比较好的一种做法就是即将文档里的内容都生成成图片(很可能是多张图片),然后将生成的图片全都放到一个html页面里 ,用html+css来保持样式并实现多张图片展示,再将html返回。开源组件kkfilevie就是用的就是这种做法,可以参考一下kkfilevie的做法(都参考了为什么不直接拿来用,滑稽表情)。2、前端通过判断不同文件类型的使用对应的在线预览组件进行在线预览。
阅读全文

解决Springboot项目打成jar包后获取resources目录下的文件报错的问题
摘要:
前几天在项目读取resources目录下的文件时碰到一个小坑,明明在本地是可以正常运行的,但是一发到测试环境就报错了,说找不到文件,报错信息是:class path resource [xxxx] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:xxxx.jar!xxxx。看了半天代码感觉没有问题,于是怀疑是打成项目jar包后和原项目存在差异导致的。
阅读全文
