CatMai Blog

Thinking will not overcome fear but action will.

优雅的导出多表格word

优雅的导出多表格word

如何优雅的导出word,之前在做项目的时候,有导出word的需求。当时解决方案是poi导出+模板导出,需要修改word的xml格式文件,还有一些模板导出的规则,xml编辑起来非常不方便。稍有不慎就会导致导出的文件无法打开或损坏。 最近又遇到了word导出的需求,而且是多表格的内容,并且表格的行列不定,显然使用poi做会非常困难,为此特别记录一下。 依赖 查找了很多资料,发现...

生成自己的二维码

生成自己的二维码

生成自己的二维码 用Java生成二维码 项目中存在生成二维码的需求,查询了一下资料,发现生成二维码的方式有很多,也比较简单。选用了zxing包来生成自己定义的二维码。话不多说,直接贴代码。 首先需要引用zxing的jar包,项目是利用MAVEN管理的,直接在pom文件中引用就可以了。 <dependency> <groupId>com.google....

重复登录验证

重复登录验证

想要实现网站同一账户在同一时间只能登录一次的功能,该如何实现? 如果保存用户信息是使用token并加载在缓存中,那么只需要在登录的接口中判断一步缓存中的用户是否与当前登录的用户相同就可以了。 但是如果系统框架是使用传统的session储存登录用户信息,该如何实现这个功能呢? 登录的时候request会带一个sessionId过去,这是每个单独的访问特有的(我理解的是每个浏览器相当于...

Jpa自定义sql

Jpa自定义sql并执行

Springboot JPA自定义sql执行 前言 SpringBoot JPA是一个移植性很强的数据持久层框架,普通的CURD操作可以免去写sql的过程而且非常方便。但是遇到复杂的查询或者是多条插入/删除的需求就难以满足。 JPA默认的saveAll()方法会单条执行插入sql当有上万条或者上百万条数据需要插入的时候,效率很低。我们可以采用拼接sql的方式,一千条或者一万条数据开一...

自定义跳过拦截器注解

自定义跳过拦截器注解

自定义注解跳过拦截器 开发过程中有时候有些接口需要免登陆访问,跳过拦截器拦截。此时我们可以选择自定义注解跳过。这样在接口上加上注解就可以实现开放免登陆接口的功能了。 首先自定义一个注解,名称随便取,意思明确就行。 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Inherited pub...

记一次应用上架钉钉的过程

钉钉上架并免登

记一次应用上架钉钉的过程 最近客户的应用需要上架到钉钉方便查看和使用,我们采用的方案是H5微应用。上架到钉钉需要走很多流程,包括安装Htpps证书、接入钉钉稳定性平台以及免登录验证。 之前没有接触过钉钉的接入,这边特别记录一下。 安装SSL证书 安装Https证书自然是要申请证书的,我是直接拿到了证书和密钥了。(如果有需要但是不知道怎么申请的可以看一下阿里云的网站,可...

airpods2体验

airpods2体验

前段时间入手了Airpods2,在可能会出三代的情况下。emmmm 这个时间入手就很灵性了。网上类似的评测也好,体验也好有很多。吹的东西估计想买的人都看得差不多了。众所周知我是个索狗,手里没有iPhone,辣么问题来了。Airpods2在安卓端有什么样的体验呢?我会从以下几个方面讲述一下我的看法(排序按照我心中分体式蓝牙耳机最重要的几个点) 1.便携性(最重要) 2.稳定性 3.通话 ...

快速搭建个人博客

手把手教你在半小时内搭建自己的个人博客(如果不踩坑的话🙈🙊🙉)

正所谓前人栽树,后人乘凉。 感谢Huxpro提供的博客模板 我的的博客 前言 从 Jekyll 到 GitHub Pages 中间踩了许多坑,终于把我的个人博客BY Blog搭建出来了。。。 本教程针对的是不懂技术又想搭建个人博客的小白,操作简单暴力且快速。当然懂技术那就更好了。 看看看博客的主页样式: 在手机上的布局: 废话不多说了,开始进入正文。 ...