
tool
文章平均质量分 81
专栏收集的在平时开发中各种工具,为了更快的实现业务.
赵广陆
优快云认证博客专家、优快云的Java领域优质创作者、全网30w+粉丝、超300w访问量、专注于大学生项目实战开发、讲解和答疑辅导、以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理,对于专业性数据证明一切!
展开
-
ThreadLocal内存泄露分析
目录1 ThreadLocal快速入门使用2 ThreadLocal内存泄露3 如何避免内存泄露1 ThreadLocal快速入门使用ThreadLocal介绍和应用:https://blog.youkuaiyun.com/ZGL_cyy/article/details/125958690原创 2023-09-05 22:54:16 · 129 阅读 · 0 评论 -
日志框架Slf4j作用及其实现原理
目录1 设计模式门面模式2 slf4j源码解析1 设计模式门面模式设计模式之门面模式与装饰器模式详解和应用:https://blog.youkuaiyun.com/ZGL_cyy/article/details/129073521slf4j是门面模式的典型应用,因此在讲slf4j前,我们先简单回顾一下门面模式,门面模式,其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。用一张图来表示门面模式的结构为原创 2023-09-05 21:52:28 · 167 阅读 · 0 评论 -
Java代码质量分析Sonar
目录1. sonar安装1.1 简介1.1.1 客户端1.1.2 sonar 版本区分1.1.2.1 社区版1.1.2.2 开发者版1.1.2.3 企业版1.2 安装部署1.2.1 修改文件句柄数1.2.2 创建挂载目录1.2.3 创建docker-compose.yml1.2.4 启动1.2.4.1 访问测试1.2.5 安装插件1.2.5.1 汉化插件1.3 静态分析插件介绍1.3.1 什么是静态代码分析1.3.1.1 静态代码分析优势原创 2023-06-18 22:41:29 · 5239 阅读 · 0 评论 -
Java阿里巴巴代码规范
目录1 编程规约1.1 方法参数类型必须一致,不要出现自动装箱拆箱操作1.1.1 反例1.1.2 正例1.2 SimpleDateFormat是线程不安全的1.2.1 反例1.2.2 正例1.3 使用equals方法应该注意空指针1.3.1 反例1.3.2 正例2 异常日志2.1 事务场景中如果异常被被捕获要注意回滚2.1.1 反例2.1.2 正例2.2 不要在 finally 块中使用 return2.2.1 反例2.2.2 正例原创 2023-06-18 22:26:48 · 9277 阅读 · 3 评论 -
Java代码规范的重要性
目录1 为什么需要代码规范1.1 不规范的案例1.1.1 就因为忘记加个分号,整个程序都崩溃了1.1.2 我为什么没写注释?1.1.3 谁动了我的代码?1.1.4 半小时写的代码,花两个小时调试1.2 代码编写1.3 在项目架构1.4 数据库设计1.5 编写文档2 需要代码规范的原因3 代码规范的重要性3.1 代码规范的好处3.1.1 规范的代码可以促进团队合作3.1.2 规范的代码可以减少bug处理3.1.3 规范的代码可以降低维护成本3.1.4 规范的代码有助于代码审查原创 2023-06-17 21:34:51 · 954 阅读 · 0 评论 -
Java实现图片转化为pdf
目录1 导入jar包2 工具类3 效果需求比较简单就是Java实现图片转化为pdf,原本要求html转图片再转pdf,看了几种方案其实都很差劲,不如后端直接转保证清晰度。原创 2022-08-27 13:03:28 · 9991 阅读 · 11 评论 -
WebSocket心跳机制
目录1 WebSocket简介2 WebSocket事件与方法2.1 创建WebSocket实例2.2 WebSocket 事件2.3 WebSocket 方法3 WebSocket的心跳重连机制3.1 问题3.2 心跳重连机制4 实际使用1 WebSocket简介WebSocket是HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。原创 2022-08-23 22:29:58 · 2239 阅读 · 0 评论 -
ThreadLocal介绍和应用
目录1 ThreadLocal介绍2 ThreadLocal使用3 ThreadLocal应用统一处理token3.1 编写UserThreadLocal3.1.1 讲解ThreadLocal,线程安全的一种策略3.2、编写TokenInterceptor3.3 编写注解NoAuthorization3.4 注册拦截器1 ThreadLocal介绍当多线程访问共享可变数据时,涉及到线程间同步的问题,并不是所有时候,都要用到共享数据,所以就需要线程封闭出场了。...原创 2022-07-27 22:00:00 · 666 阅读 · 0 评论 -
PgSQL常用脚本语句
目录1 条件语句1.1 elsif可以写多个1.2 LOOP 循环2 WHILE 循环3 FOR 循环 PostgreSQL 的对象-关系型数据库管理系统(有一段时间被称为 Postgres95)是从伯克利写的 POSTGRES 软件包发展而来的。经过十几年的发展, PostgreSQL 是世界上可以获得的最先进的开放源码的数据库系统, 它提供了多版本并行控制,支持几乎所有 SQL 构件(包括子查询,事务和用户定义类型和函数)............原创 2022-07-08 20:27:33 · 12103 阅读 · 0 评论 -
spring-retry实现方法请求重试
目录1 spring-retry是什么?2 使用步骤2.1 引入maven库2.2 在spring启动类上开启重试功能2.2 公共业务代码2.3 传统的重试做法2.4 使用spring-retry的命令式编码2.4.1 定义重试监听器2.4.2 定义重试配置2.4.3 命令式编码2.5 使用spring-retry的注解式编码3 SpringBoot整合spring-retry3.1 添加@EnableRetry注解3.2 接口实现3.3 添加@Retryable注解...原创 2022-07-07 22:41:35 · 792 阅读 · 0 评论 -
Java通过ssh向服务器上传下载删除文件和操作Linux
目录1 JSch介绍2 编码使用2.1 JSch的引用2.2 JSch连接配置代码2.3 使用JSch上传下载删除文件代码2.4 拓展功能java使用命令操作linux1 JSch介绍JSch是SSH2的纯Java实现 。JSch允许您连接到sshd服务器并使用端口转发,X11转发,文件传输等,您可以将其功能集成到您自己的Java程序中。本文主要介绍利用JSch实现sftp通过ssh上传下载文件和一些相关配置。2 编码使用2.1 JSch的引用1)项目中导入jsch-0.1.53.jar包下载原创 2022-05-07 18:30:00 · 2721 阅读 · 2 评论 -
Java常用工具类
目录1 获取使用者操作系统和游览器版本信息2 获取使用者ip地址3 身份证验证工具类4 雪花id生成用于文件名5 名字转拼音6 忽略BeanUtil字段7 通过身份证号码获取出生日期、性别、年龄8 map与url参数转换9 java以逗号为分割符拼接字符串的技巧以下工具类收集与网上,但是都是实际应用于项目当中经过检验和优化的,拿来直接使用没有什么问题1 获取使用者操作系统和游览器版本信息/** * @author oldlu * @version 1.0 * @date 2021/10/2原创 2022-03-08 22:30:00 · 905 阅读 · 0 评论 -
WebSocket区分不同客户端方法
目录1 获取HttpSession值2 @PathParam获取用户对象3 区分不同客户端1 获取HttpSession值在使用websocket来制作多人即时聊天工具的时候,难免会遇到一个问题,如何区分不同的客户端。想要解决这个问题就等于是要解决这样一个问题:如何把当前登录用户的userId传给服务端呢?因为不同的客户端代表着不同的用户,做到了获取不同客户端的userId那么自然就把不同的客户端区分开来了。两种可行获取客户端userId的方法。一种是通过在Server取HttpSession中的值获原创 2022-02-09 20:45:00 · 3645 阅读 · 0 评论 -
Linux环境aspose插件word转pdf中文乱码解决方案
目录1 问题描述2 问题原因3 解决方案1:环境解决4 解决方案2:代码解决1 问题描述在centos服务器使用aspose.word转换word文件为pdf的时候显示中文乱码,但是在win服务器上使用可以正常转换。2 问题原因通过查资料分析后确认是由于linux服务器缺少对应的字库导致文件转换出现乱码的。3 解决方案1:环境解决安装字库,将win机器的c:\windows\fonts目录下的全部文件拷贝到生产服务器字体安装目录下,然后执行以下命令更新字体缓存。查看linux目前的所有字原创 2022-02-09 21:00:00 · 8566 阅读 · 3 评论 -
Lua高性能脚本语言快速入门
目录1 Lua介绍2 Lua安装3 Lua常用知识3.1 Lua案例3.2 Lua语法3.3 流程控制3.3.1 if语句3.3.2 if..else语句3.3.3 while循环[满足条件就循环]3.3.4 for循环3.3.5 repeat...until语句3 函数4 表1 Lua介绍Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面。Lua一般用于嵌入式应用,现在越来越多应用于游戏当中,魔兽世界,愤怒的小鸟都有用到。本次学习是为redis一系列操作做技术储备.优势:1、Lua极易原创 2022-01-16 14:48:52 · 2297 阅读 · 0 评论 -
微信开发获取签名wx.config
目录1 开发条件2 在后台使用动态url方式获取signature3 改为接口进行访问1 开发条件1 申请一个微信公众号,并确认在开发–接口权限中拥有分享功能的权限。2 公众号设置–功能设置:在JS接口安全域名中添加安全域名,这个安全域名不是url,只需添加一级域名即可。3 开发,基本配置中,需要获得开发者id,开发者密码,ip白名单,ip白名单是服务器的ip。4 获得jsapi_ticket:先获取access_token:https://mp.weixin.qq.com/wiki?t=re原创 2021-11-02 20:15:00 · 3822 阅读 · 0 评论 -
Java实现企业微信上传临时文件获取media_id
目录1 上传临时素材API2 测试代码3 测试完成1 上传临时素材API调试工具素材上传得到media_id,该media_id仅三天内有效media_id在同一企业内应用之间可以共享请求方式:POST(HTTPS)请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/uploadaccess_token=ACCESS_TOKEN&type=TYPE使用multipart/form-data POST上传文件, 文件标识名为”media”原创 2021-10-19 11:16:33 · 4600 阅读 · 1 评论 -
企业微信开发之获取media_id的值
在很多地方的微信开发中有关于获取media_id值得问题,比如某些图片信息的引用就会有media_id这个参数,为了更简洁的获得参数微信测试开发文档里面有接口网页:[使用网页调试工具调试该接口](https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=基础支持&form=多媒体文件上传接口 /media/upload)我们可以在这里打开的链接中设置相关的参数,请求成功就会有对应的media_id的值,获得后我们就可以在其他图原创 2021-10-19 20:15:00 · 3680 阅读 · 4 评论 -
企业微信接收回调
目录1 应用场景1.1 企微后台配置1.2 配置配置项2 回调接口2.1 请求方式get2.2 请求方式post3 解析xml代码1 应用场景审批回调,其实任何需要回调的接口逻辑相同,会一种即可企业微信后台配置接口地址细心的同学已经发现了,这货的参数跟微信的差不了多少。1.1 企微后台配置1.2 配置配置项其一是回调的接口地址,其二是需要验签用的token,其三是随机的key,然后我们看一下回调接口的回调参数2 回调接口2.1 请求方式get这个是企微文档的回调接口然后看到回调原创 2021-10-18 22:30:00 · 3225 阅读 · 6 评论 -
企业微信开发OA审批
目录1 OA-审批1.1 场景描述1.2 与审批流程引擎的区别2 获取审批模板详情2.1 线上调试2.2 代码实战2.2.1获取access_token2.2.2 错误分析2.2.3 获取模版详情2.2.4 错误分析3 提交审批申请3.1 代码实战3.2 错误分析1 OA-审批1.1 场景描述(1)企业可通过审批应用或自建应用secret换取access_token,用于企业微信审批应用相关接口调用。(2)首先,可通过“获取审批模板详情”接口,了解模板内的控件构成及控件id。(3)然后,可通过“原创 2021-10-14 23:15:00 · 3896 阅读 · 0 评论 -
微信公众号发送模板消息
目录1 开发中遇到的问题汇总2 模板消息创建3 调试接口微信公众号消息模板基本信息请求参数Query参数及说明body参数及说明4 测试结果5 工具类封装1 开发中遇到的问题汇总首先是在测试中,遇到最多的就是41003->appid错误,然后就是40165,说什么page和pagepath,其实就是线上和体验的问题,反正不管怎么改发出去就行,跳转到正确的页面即可,但是大问题是:公众号的文档然后里面发送模板消息是小程序的,然后一直就是appid错误,然后突然发现还有个文档,修改body后测试成功原创 2021-10-12 22:00:00 · 1962 阅读 · 0 评论 -
Restful实现多文件上传
目录1 实例代码2 遇到的坑3 请求实例1 实例代码以下代码都是经过测试可直接使用 @ApiOperation(value = "上传多文件", notes = "上传多文件") @ApiResponses({ @ApiResponse(code = 503, message = "服务不可用"), @ApiResponse(code = 404, message = "请求不存在"), @ApiRespons原创 2021-10-08 21:00:00 · 1409 阅读 · 0 评论 -
网页实现微信支付
目录1 微信扫码支付开通1.1 方式一1.2方式二2 开发文档2.1 场景介绍2.2 开发步骤2.3 微信支付接口规则3 生成支付二维码并支付3.1 准备3.2 生成支付二维码3.3 支付前端4 支付回调4.1 准备4.2 支付回调5 查询支付状态5.1 查询支付状态5.2 前端整合1 微信扫码支付开通1.1 方式一第一步:注册公众号https://mp.weixin.qq.com/ 类型须为:服务号请根据营业执照类型选择以下主体注册:个体工商户| 企业/公司| 政府| 媒体| 其他类型第二原创 2021-02-03 22:56:11 · 7992 阅读 · 0 评论 -
java代码混淆工具Allatori
目录1 从官网下载allatori文件2 Eclipse 下进行代码混淆2.1 config.xml 详解3 单个jar文件进行混淆4 注意事项1 从官网下载allatori文件http://www.allatori.com/,也可以从以下链接获取有时候处于某种原因,我们需要将自己的代码做一些“处理”,保护一下自己小小的辛苦成果。至于allatori的技术原理以及其他的混淆技术这里不做解释,只是做一些简单记录解压后文件:其中lib下是执行混淆用到的jar包allatori.jar和allat原创 2021-08-07 14:19:51 · 916 阅读 · 0 评论 -
Zeppelin可视化数据分析
目录1 Zeppelin1.1. 安装1.2. Zeppelin的作用1.3. Zeppelin 入门使用2. 房价预测详细思路2.1. 绘制房价直方图2.2. 绘制数据和房价之间的散点图2.3. 选择模型2.4. 空值处理2.5. 顺序特征编码2.6. 组合新特征2.7. 特征编码2.8. 简要实现模型1 Zeppelin1.1. 安装下载 Zeppelin在 Files/setup 中已经准备好了压缩包上传到 master01 中解压缩 zeppelin-0.8.2-bin-a原创 2021-08-07 14:19:39 · 1513 阅读 · 0 评论 -
springboot集成MinIo文件服务器
目录1.添加依赖2. 集成springboot 并提供工具类4. 配置信息5. crud 示例6.MinIO dashboard 信息7. 官网网址8.参考文档9 实际开发遇到的问题9.1 文件分享的地址过期9.2 文件图片预览和获得流方法提供如何部署:Docker搭建minio文件服务器1.添加依赖dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId原创 2021-08-03 21:56:32 · 447 阅读 · 1 评论 -
Docker搭建minio文件服务器
一、获取镜像docker pull minio/minio二、构建容器docker run -p 9000:9000 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=admin123456" -v /home/data:/data -v /home/config:/root/.minio minio/minio server /data-p:端口映射-name:容器名称-e:环原创 2021-08-03 21:56:07 · 558 阅读 · 0 评论 -
Hutool发送邮件
1、导依赖 <!--我使用的SpringBoot版本是2.2.5.RELEASE--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.4</version> </depe原创 2021-07-08 21:56:50 · 4178 阅读 · 0 评论 -
Swagger生成接口文档
目录1 简单介绍2 入门案例2.1 引入依赖2.2 编写配置2.3 启动测试3 常用注解4 生成可以生成文档的增强4.1 添加依赖4.2 重启项目5 记录生产环境的坑6 生成docx文档6.1 pandoc安装6.2 文件转换6.3 遇到的问题1 简单介绍Swagger是一个实现了OpenAPI(OpenAPISpecification)规范的工具集。OpenAPI是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程。swagger原创 2021-07-08 21:56:36 · 10319 阅读 · 5 评论 -
Hutool操作和监听文件
由来很多时候我们需要监听一个文件的变化或者目录的变动,包括文件的创建、修改、删除,以及目录下文件的创建、修改和删除,在JDK7前我们只能靠轮询方式遍历目录或者定时检查文件的修改事件,这样效率非常低,性能也很差。因此在JDK7中引入了WatchService。不过考虑到其API并不友好,于是Hutool便针对其做了简化封装,使监听更简单,也提供了更好的功能,这包括:支持多级目录的监听(WatchService只支持一级目录),可自定义监听目录深度延迟合并触发支持(文件变动时可能触发多次modify,支原创 2021-07-08 21:56:13 · 3523 阅读 · 15 评论 -
WebSocket网页聊天室
1,WebSocket1.1 WebSocket介绍WebSocket 是一种网络通信协议。RFC6455 定义了它的通信标准。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求做出应答处理。这种通信模型有一个弊端:HTTP 协议无法实现服务器主动向客户端发起消息。这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非原创 2021-07-03 13:05:42 · 1277 阅读 · 3 评论 -
RestTemplate请求访问简单使用
RestTemplate 简介RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 RestOperations 接口,其中 RestOperations 接口定义了基本的 RESTful 操作,这些操作在原创 2021-06-27 19:06:31 · 2303 阅读 · 1 评论 -
IDEA快速构建UML类图
目录1 UML图1.1 类图概述1.2 类图的作用1.3 类图表示法1.3.1 类的表示方式1.3.2 类与类之间关系的表示方式1.3.2.1 关联关系1.3.2.2 聚合关系1.3.2.3 组合关系1.3.2.4 依赖关系1.3.2.5 继承关系1.3.2.6 实现关系2 IDEA快速构建UML类图1 UML图统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息原创 2021-06-27 19:00:58 · 28694 阅读 · 4 评论 -
File和MultipartFile互相转化工具类
目录1 File转MultipartFile工具类2 MultipartFile转File1 File转MultipartFile工具类引入以下依赖:<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version><原创 2021-06-25 23:02:33 · 1164 阅读 · 2 评论 -
java实现线上环境远程debug调试
服务器部署项目后又时可能与本地开发效果不一致,怎么实现远程调试配置?docker中怎么进行配置?docker中tomcat实现远程调试配置1. 配置docker-compose.ymlCATALINA_OPTS参数配置启动远程调试功能version: '2.2'services: test: container_name: test image: tomcat:8.5.32 ports: - "5005:5005" volumes:原创 2021-06-25 22:38:55 · 1732 阅读 · 0 评论 -
Freemarker填充数据到word模板中
目录1 环境配置2 doc文档或docx文档3 另存为xml格式4 核心代码5.填充生成到docx5.1.创建模板docx并取出document.xml5.2.用winrar打开test_template.docx,取出word/document.xml5.3.准备工作完毕,上代码了,这个类是把内容填充到xml5.4.这个类是把填充完毕的xml转成docx5.5.main方法调用6 推荐一个封装好的工具1 环境配置<!-- https://mvnrepository.com/artifact/原创 2021-06-12 16:53:54 · 1635 阅读 · 0 评论 -
Socket.IO服务端与客户端消息通讯
目录1 开始2 介绍3 网络框架4 服务 HTML5 集成 Socket.IO6 发出事件7 广播1 开始在本指南中,我们将创建一个基本的聊天应用程序。它几乎不需要 Node.JS 或 Socket.IO 的基本先验知识,因此非常适合所有知识水平的用户。2 介绍使用流行的 Web 应用程序堆栈(如 LAMP (PHP))编写聊天应用程序通常非常困难。它涉及轮询服务器以获取更改、跟踪时间戳,并且它比应有的速度慢得多。传统上,套接字一直是构建大多数实时聊天系统的解决方案,在客户端和服务器之间提供双向原创 2021-06-12 13:46:18 · 1811 阅读 · 0 评论 -
使用WebSocket实现服务端和客户端的通信
开发中经常会有这样的使用场景.如某个用户在一个数据上做了xx操作, 与该数据相关的用户在线上的话,需要实时接收到一条信息.这种可以使用WebSocket来实现. 另外,对于消息,可以定义一个类进行固化. 主要是消息内容,接收人,发送人,是否已发送等.用户上线时, 通过方法去查询出来然后进行发送@ServerEndpoint(value = "/websocket/{sessionId}")public class MyWebSocket {//静态变量,用来记录当前在线连接数。应该把它设计成.原创 2021-06-12 13:44:49 · 2274 阅读 · 2 评论 -
基于commons-net实现ftp创建文件夹、上传、下载功能.
commons-net 概述 与 下载1、Apache官方说明地址:http://commons.apache.org/proper/commons-net/index.html2、Apache 的 common-net 是 commos 顶级项目下一个非常强大的用于网络编程的子项目FtpClientUtil package com.demo.ftp;import java.io.FileInputStream; import java.io.FileOutputStream;原创 2021-05-09 17:27:25 · 2039 阅读 · 0 评论 -
java利用canal监听数据库
springcloud如何使用canal监听mysql数据库操作 canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。演示的是canal项目单独作为一个微服务配置安装与解压下载地址:https://github.com/alibaba/canal/releases/tag/canal-1.1.4将压缩包放入linux的/usr/local/soft 文件夹中解压到指定文件夹t.原创 2021-05-09 13:24:41 · 4108 阅读 · 3 评论