Hutool

一文让你了解如何快速、优雅的实现导出Excel

半世苍凉 提交于 2021-02-19 20:51:12
前言: 春节假期刚刚过去,大家是不是已经开始了搬砖生活啦,嘻嘻 o(∩_∩)o ,可我还在休假中呢 ! 好啦,咱们言归正传,开始聊聊正文。做过后端管理系统的同学,大概率都会收到过实现 导出Excel 的功能需求,因为这个功能在后台管理系统中是个必备功能。 那大家是怎么实现这个功能的呢? 使用Apache提供POI组件实现; 使用现成的、简便的第三方工具库(避免重复造轮子) Hutool 工具库中的Excel工具类 EasyExcel 阿里开源的基于Java的简单、省内存的读写Excel工具库 接下来咱们来聊聊使用 Hutool、EasyExcel 工具库实现导出Excel。 使用第三方库实现导出Excel 业界有句话:不重复造轮子。 使用工具类可以减少日常繁琐的编码,减少重复的编码时间,提高开发效率。 作为程序员,应该多善于利用工具减少代码冗余,美化自己的代码。 使用 Hutool 工具库实现导出Excel: 1、首先添加依赖 在pom.xml中添加上依赖: <!--hutool 导出 Excel 工具组件--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.1.0</version> </dependency> <!--POI组件-->

HikariCP 数据源配置使用

一曲冷凌霜 提交于 2021-01-26 10:28:14
使用场景 HikariCP 这个数据源号称是最快的数据源。 其实个人认为 性能肯定还是在SQL语句和数据库。而且 这个数据源功能其实并不多。 个人不喜欢使用 将其作为主数据源。 druid 数据源对比 但是 如果将 HikariCP 作为读取 读取第三方 数据库 也就是多数据源来 使用,个人认为是非常适合的。 多数据源配置 package com.door.remote.dataSource; import cn.hutool.cache.CacheUtil; import cn.hutool.cache.impl.TimedCache; import cn.hutool.db.Db; import com.door.common.constants.DbConst; import com.door.common.constants.biz.dr.DbSetType; import com.door.entity.dr.AcDrDbSource; import com.door.utils.db.CfsDatabase; import com.zaxxer.hikari.HikariDataSource; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.StringUtils; import

当下最流行的后端框架

╄→尐↘猪︶ㄣ 提交于 2021-01-21 12:35:00
程序员日常开发,很需要一块适合自己适合项目的脚手架(快速开发平台),这也是我们团队准备解决这一痛点,开发了 xiaonuo系列 框架,虽说是开源平台同系列产品较多,从代码规范二次开发方面,我极力推荐使用小诺。 Vue前后分离登录界面 推荐理由: 模块化架构设计,层次清晰,业务层推荐写到单独模块,方便升级。 前后端分离架构,分离开发,分离部署,前后端互不影响。 前端技术采用vue + antdvPro + axios。 后端采用spring boot + mybatis-plus + hutool等,开源可靠。 基于spring security(jwt) + 用户UUID双重认证。 基于AOP实现的接口粒度的鉴权,最细粒度过滤权限资源。 基于hibernate validator实现的校验框架,支持自定义校验注解。 提供Request-No的响应header快速定位线上异常问题。 在线用户可查,可在线踢人,同账号登录可同时在线,可单独在线(通过系统参数配置)。 支持前端 + 后端在线代码生成。 文件,短信,缓存,邮件等,利用接口封装,方便拓展。 文件默认使用本地文件,短信默认使用阿里云sms,缓存默认使用内存缓存。 用户管理 代码风格统统采用阿里巴巴规范进行开发,分包合理,升级方便 来源: oschina 链接: https://my.oschina.net/u/4355040

SpringBoot使用Hutool生成二维码

谁都会走 提交于 2020-12-11 11:51:49
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 官方地址: https://hutool.cn/docs/#/ 邮件文档地址: https://hutool.cn/docs/#/extra/%E4%BA%8C%E7%BB%B4%E7%A0%81%E5%B7%A5%E5%85%B7-QrCodeUtil 一、添加依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.4</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> </dependency> 二、生成二维码 (1)生成简单的二维码 import cn.hutool.core.io.FileUtil; import cn.hutool.extra.qrcode.QrCodeUtil; import org.springframework.web.bind.annotation

PBFT算法java实现(上)

百般思念 提交于 2020-10-23 02:46:21
PBFT 算法的java实现(上) 在这篇博客中,我会通过Java 去实现PBFT中结点的加入,以及认证。其中使用socket实现网络信息传输。 关于PBFT算法的一些介绍,大家可以去看一看网上的博客,也可以参考我的上上一篇 博客 ,关于怎么构建P2P网络可以参考我的上一篇 博客 。 该项目的地址: GitHub 使用前的准备 使用maven构建项目,当然,也可以不使用,这个就看自己的想法吧。 需要使用到的Java包: t-io:使用t-io进行网络socket通信,emm,这个框架的文档需要收费(699RMB),但是这里我们只是简单的使用,不需要使用到其中很复杂的功能。 fastjson:Json 数据解析 lombok:快速的get,set以及toString hutool:万一要用到呢? lombok:节省代码 log4j:日志 guava:Google的一些并发包 结点的数据结构 首先的首先,我们需要来定义一下结点的数据结构。 首先是结点Node的数据结构: @Data public class Node extends NodeBasicInfo { /** * 单例设计模式 * @return */ public static Node getInstance () { return node; } private Node () {} private static

若干杂七杂八的一起发表(1)

江枫思渺然 提交于 2020-10-01 11:32:05
4、代码如果写的更清晰一点,就可以避免这个bug了 根据输入参数,构造1个Contract实体。 其中 priority字段,需要从数据库查询。 A1 B1(这段代码,需要用到 priority字段。A1执行后,proprity还没值) A2 (A1+A2),总体作为一个整体,构造Contract对象,后面的代码再使用。 --------------------------------- 5、命名有歧义,bug就是多。代码不规范,测试两行泪。 修正后的代码 xx实体,不用“status”,用“flowStatus”。和 xx系统的“流程状态”,而不是那个 “有效无效”的status状态。尴尬。 10、日常表达-交流,方法论 友情提示: 分享东西,大纲 要清晰。文档结构化,知识结构化。 先背景 现象,再遇到问题,解决问题。 解决问题的过程,最后结论。 老司机。 12、多看文档,机智干活 1、问题: 合同系统,从合同目录名中提取“客户编号”。 “10.北京拉勾网络技术有限公司” “10北京拉勾网络技术有限公司” “北京拉勾网络技术有限公司102” 这个数字,正常情况,是开头的第1个数字。 2、解决办法 一般情况下,是自己写正则,找数字。 正则不好记,写了还得测。 不用正则的话,规律 有的有".",有的没有".",不方便统一根据"."来截取。 最佳解决办法:hutool官网

国人开源了一款小而全的 Java 工具类库,厉害啊!!

主宰稳场 提交于 2020-08-18 06:16:49
最近栈长看到了一款小而全的 Java 工具类库:Hutool,Github 已经接近 14K Star 了,想必一定很优秀,现在推荐给大家,很多轮子不要再造了! Hutool 是什么 Hutool 是一个 Java 工具包类库,它可以对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种 Utils 工具类。 Hutool 即是 Hu(谐音“糊涂”) + tool,前者致敬作者 “前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。 Hutool如何改变我们的coding方式 Hutool的目标是使用一个工具方法代替一段复杂代码,从而最大限度的避免“复制粘贴”代码的问题,彻底改变我们写代码的方式。 以计算MD5为例: 【以前】打开搜索引擎 -> 搜“Java MD5加密” -> 打开某篇博客-> 复制粘贴 -> 改改好用 【现在】引入Hutool -> SecureUtil.md5() Hutool的存在就是为了减少代码搜索成本,避免网络上参差不齐的代码出现导致的bug。 是不是很香,再也不要到处找这些工具类代码了,关注公众号Java技术栈在后台回复工具可以获取我往期推荐的真香工具。 包含组件 一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类

贼好用的Java工具类库,GitHub星标10k+,你在用吗?

本秂侑毒 提交于 2020-08-11 11:42:46
简介 Hutool是Hu + tool的自造词,前者致敬我的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。 Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。(抄自作者简介) 功能 一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件: hutool-aop JDK动态代理封装,提供非IOC下的切面支持 hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤 hutool-cache 缓存 hutool-core 核心,包括Bean操作、日期、各种Util等 hutool-cron 定时任务模块,提供类Crontab表达式的定时任务 hutool-crypto 加密解密模块 hutool-db JDBC封装后的数据操作,基于ActiveRecord思想 hutool-dfa 基于DFA模型的多关键字查找 hutool-extra 扩展模块,对第三方封装(模板引擎、邮件等) hutool-http

Elasticsearch 的sql查询Java工具类

老子叫甜甜 提交于 2020-08-09 21:51:55
package org.vander.es.utils; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import lombok.Data; public class EsQueryUtils { private static String esUrl = "http://127.0.0.1:9200/_sql?format=json"; /** logger */ private static final Logger log = LoggerFactory