
常用API
文章平均质量分 74
常用API总结
chy-x
这个作者很懒,什么都没留下…
展开
-
spring-retry 异常重试
spring-retry 和spring的事务管理一样,有声明式(注解)、编程式(自行写代码)2种使用方式,更推荐使用声明式,不侵入原有业务逻辑。声明式是基于aop实现的,还需要引入aop相关依赖,同样具有aop相关的坑,比如以下几种情况 spring-retry 不生效。@Recover 方法可选,返回值类型和@Retryable方法保持一致,第一个参数和@Retryable指定的异常类型保持一致,后续参数和@Retryable方法形参表保持一致(末尾的参数可以省略,但参数顺序不能乱)。原创 2023-07-04 07:30:00 · 558 阅读 · 0 评论 -
Lua使用指南
lua 是一种开源、轻量的脚本语言,其设计目的是嵌入应用程序中,为应用程序提供灵活的扩展功能。lua 特性轻量级:解释器使用标准c语言编写,编译后仅仅一百余K,可以很方便的嵌入到应用程序中;提供了易于使用的扩展接口、机制,扩展性强;自动内存管理功能丰富,支持闭包、协程、文件IO、数据库访问;支持面向过程编程、面向对象编程、函数式编程。lua提供了通用类型的表(table),用它可以实现数组,哈希表,集合,对象以及实现面向对象编程。Lua 应用场景游戏开发独立应用脚本。原创 2023-07-07 07:30:00 · 1499 阅读 · 0 评论 -
集合 常用工具类
BidiMap继承自Map,一个key唯一对应一个value,一个value也唯一对应一个key,常用实现类有 DualHashBidiMap、DualLinkedHashBidiMap、UnmodifiableBidiMap。ListUtils、SetUtils的一些相似方法,比如 isEqualList()、isEqualSet(),入参都是公共父类Collection,但提供的实现分别是针对list、set的,使用时尽量传入对应类型的实参。key由多个部分组成,有一定顺序。原创 2022-12-09 11:48:58 · 2121 阅读 · 1 评论 -
数组 常用工具类
增删元素会引起数组元素数量改变,都是先创建容量正好的新数组,再拷贝、添加需要的元素,返回新数组。各个基本类型、引用类型的空数组。原创 2022-11-24 19:30:00 · 749 阅读 · 0 评论 -
MapStruct的使用
其它常见的bean copy框架,往往需要字段名、数据类型相同,才会复制;mapstruct默认字段名相同就会复制,如果字段名相同,但mapstruct编译生成代码时无法实现对应数据类型的转换,编译时会报错,通不过编译//可以用uses引入需要的类型转换mapper,值是Class[],同名字段会自动使用引入的转换mapper中对应的方法进行转换 @Mapper(uses = {}/*** 转换mapper。原创 2022-11-18 17:15:49 · 2246 阅读 · 0 评论 -
Assert 断言常用工具类
jdk的内置断言 assert 默认关闭,可以用命令行参数 -ea 启用内置断言,ea即enable assertions。鸡肋,忘记加-ea时断言不起作用,有风险,不推荐此种方式。以上方法,当参数自身为null时,抛出NPE;当参数自身不为null、但不满足要求时,抛出 IndexOutOfBoundsException。以上方法,当参数自身为null时,抛出NPE;当参数自身不为null、但不满足要求时,抛出 IllegalArgumentException。不满足时也是抛异常,可以起到断言作用。原创 2022-08-16 20:30:54 · 2215 阅读 · 3 评论 -
Object 常用工具类
【代码】Object 常用工具类。原创 2022-08-16 20:22:25 · 1047 阅读 · 0 评论 -
IO常用工具类 commons-io
都是先调用openOutputStream()打开文件,进行写入,再关闭文件;未指定字符集时,默认使用jvm默认字符集,jvm默认字符集由jvm启动时根据操作系统设置的地区、字符集确定。commons-io 是apache开源的io工具类库,封装了很多IO工具类,使用方便。打开文件后,如果已经读取了所有内容,后续再次读取时游标已经在文件尾了,读不到任何内容。copy()、copyLarge() 底层都是调用相同的方法,区别在于。,用 \ 转义字符串中的 \,所以写成 \\,实际返回、输出的是 \。...原创 2022-08-11 20:15:00 · 2358 阅读 · 0 评论 -
Number 常用工具类
此处都是双闭区间 [start,stop]原创 2022-08-11 19:30:00 · 2568 阅读 · 0 评论 -
Boolean 常用工具类
toBoolean()、toInteger() 只是camel命名方式,返回的是基本类型 boolean、int;toBooleanObject()、toIntegerObject() 返回的才是包装类型Boolean。Boolean自带的2个常量。原创 2022-08-10 22:39:12 · 783 阅读 · 0 评论 -
char 常用工具类
第二个参数指定字符集,参数个数不定,可以现写字符集,也可以使用预定义常量的toString(),eg.这些char常量都是继承子父接口 CharPool,也可以通过 CharPool 来引用。此处的CharSet是commons-lang3中的类,不是java.nio中的类。......原创 2022-08-10 22:27:48 · 780 阅读 · 0 评论 -
String 常用工具类
apache的 common-lang3 工具类众多、方法齐全, 推荐使用。老版本类库是 commons-lang,新版本是 commons-lang3,尽量用 lang3 代替 lang。工具类封装的方法,相比于原生方法,往往做了很多额外校验、兼容、处理,比如校验了输入是否合法、兼容了NPE、判断了从其它地方获取的数据,使用起来要方便些。empty、blank的异同点:都包含了null、空串,blank还包含了空格串。都是在副本上修改,返回副本,原串不变。原创 2021-09-30 12:40:12 · 9775 阅读 · 0 评论 -
BeanCopy 常用工具类
以上介绍的几种bean copy方式都是浅拷贝,通常处于性能考虑,也是使用浅拷贝,除非特殊情况。根类 Object 的 clone() 方法是 native 方法,速度快、性能高。拷贝都是新建目标类实例,浅拷贝、深拷贝的区别在于引用类型的成员字段的复制方式不同。反序列化是深拷贝的,这也是实现深拷贝最常见的方式。手动get、set,性能最高,但写起来麻烦。基于反射实现,性能极差,避免使用。原创 2021-09-30 21:03:25 · 2142 阅读 · 0 评论 -
lombok的使用
SneakyThrows是把整个方法体放到try中,对异常的处理是直接抛出,方法签名上不会用throws声明可能抛出的异常,调用这个方法的开发可能不会留意到这个方法会抛出异常,也就没对可能抛出的异常进行处理,因为IDEA没有报红、也能通过编译,导致运行时出现一堆没有捕获处理的异常。虽然@SneakyThrows可以让代码变得简洁、清爽,但十分容易遗漏异常的捕获处理,慎用,尤其是公司内部自行封装的、要提供给多个模块|项目使用的基础类库,一律禁止使用@SneakyThrows。一人使用,全组都得跟着用。原创 2021-09-30 14:47:40 · 755 阅读 · 0 评论 -
ffmpeg的使用 | m3u8视频下载、合并
目录ffmpeg的下载、配置下载版本说明环境变量配置ffmpeg处理m3u8 | ts的常用命令 ffmpeg是一个十分强大的音视频处理工具,提供转码、播放等基础功能,功能十分全面、强大,但命令繁多复杂,通常不直接使用,而是集成在带GUI的视频处理软件中。 我用过一些m3u8的下载、合并工具,比如TS Master:界面复杂,不好用TS助手:下载速度快,但有些情况下载合并不了,比如带有key的推荐使用TS助手,TS助手下载、合并失败的再使用ffmpeg进行处理。&nb原创 2021-07-18 23:24:47 · 16276 阅读 · 2 评论 -
Http请求 常用类库
非单例模式下,OkHttp的性能更好,HttpClient创建连接比较耗时,因此多数情况下这些资源会写成单例模式;单例模式下,HttpClient速度略快一些,二者性能相差不大。很多框架都集成了 httpcomponents-client、OkHttp,比如springboot。如果需要支持异步请求、文件上传,还需要额外引入依赖。一般使用同步请求即可。原创 2020-08-31 21:23:09 · 1347 阅读 · 0 评论 -
Java 加解密
Secure Hash Algorithm 安全散列(哈希)算法,该算法的思想是接收一段明文(也称为输入码、预映射、信息),然后以一种不可逆的方式将它转换成一段长度较短、位数固定的密文(也称为输出序列、散列值、信息摘要、信息认证代码)。由于MD的设计,易受密码分析的攻击,SHA显得不易受这样的攻击,更安全。MD算法特点:计算得到的MD值长度固定,不管数据多大,摘要后都能生成唯一的MD值,对原数据进行任何改动,哪怕只修改个字节,所得到的MD值都会发生变化,伪造数据(找到具有相同MD值的数据)非常困难。原创 2020-09-28 22:35:21 · 1143 阅读 · 0 评论 -
富文本编辑器
如果使用js或jq的val属性来获取文本域的内容,需要先sync()同步,不然获取到的值是剔除html标签的。这两者功能都比较齐全,相比KindEditor,wangEditor更轻量、简洁,但偏pc端 ,不支持移动端和 ipad。// 此变量代表KindEditor富文本编辑器,如果后续不使用此变量,也可以放在函数中。2、有时候编辑的内容是在移动端展示的,比如显示在小程序中的页面上。1、v4版本的使用和v3略有不同,使用时要注意引入的是v3还是v4版本。//指定KindEditor上传文件使用的字段名。原创 2020-09-28 23:04:25 · 1705 阅读 · 0 评论 -
Java 爬虫
Web Magic 封装了 SpiderMonitor、SpiderStatusMXBean 用于监控爬虫状态//爬虫名称,即爬虫的uuid,唯一标识一个爬虫//待爬取的url数量//启动爬虫,实质是调用 spider.start()//终止爬虫,实质是调用 spider.stop()SpiderMonitor 很多方法是 protected 的,不能直接调用,需要通过 jconsole 之类的 JMX 客户端来查看爬虫状态,使用不方便。原创 2020-09-29 23:29:30 · 2534 阅读 · 2 评论 -
生成验证码
目录前端自己绘制验证码图片kaptcha 验证码常见的实现方式有2种自己写代码绘制验证码图片使用google的开源工具kaptcha,生成验证码的主流方式,简单强大 前端<form action="/user/login" method="post"> <div> 请输入验证码:<input type="text" name="captcha" /> <img id="captchaIma原创 2020-09-28 00:04:33 · 569 阅读 · 0 评论 -
二维码的生成、解析
目录概述前端生成二维码qrcode.jsjquery.qrcode.js后端生成二维码(zxing)依赖前端后端 概述前后端都方便做的时候,交给前端来做后端可以用java生成二维码,前端可以用js生成二维码,如果要保存到服务器,那就后端生成二维码;如果是一次性的、图片不需要保存到服务器,那就前端生成二维码。后端实现,多个用户同时操作时会加重服务器的负担;前段实现,由用户浏览器完成操作,可以减轻服务器压力。前端生成二维码也比后端要简单一些。最好是前端传递参数,后端做相应处理返回给前端数据,原创 2020-09-29 23:13:46 · 5077 阅读 · 0 评论 -
Java操作excel
目录概述前端上传excel文件导出数据为excel文件后端使用POI操作excel依赖解析上传的excel文件写的基本操作导出数据到excel文件中后端使用EasyExcel操作excel依赖实体类监听器controller 概述操作excel的主流方式有3种JXL 很耗内存POI 操作excel的主流方式,可以操作office的全套文档,eg. excel、ppt、word、outlook,虽然在一定程度上可以减少内存占用,但内存占用依旧不低EasyExcel JXL、POI内存占原创 2020-09-27 23:34:57 · 1010 阅读 · 0 评论 -
JSON的使用
目录json简介json对象、数组、字符串json序列化、反序列化前端常用的json操作 json简介json、xml都是纯文本的数据交换格式,常用于前后端数据交互,与xml相比,json有以下优点简单易⽤,json的序列化、反序列化都只需一句代码支持性好,⼏乎所有编程语⾔都有解析json的库轻量级,这是json最大的优势。json 比 xml 更小、更快——传输速度更快,更易解析——执行速度更快。 json对象、数组、字符串JSON全称JavaScript Ob原创 2020-05-15 15:26:04 · 698 阅读 · 0 评论 -
正则表达式
对String、正则表达式,\都是特殊字符、需要转义,\在正则表达式中转义写为\\,\\写成String形式还需要转义,写成\\\\。尽可能少的匹配字符,也称最小匹配模式,需要在数量限定符后用一个额外的?2、一些方法的参数是Sring regex,因为正则表达式中可能有转义的特殊字符,和使用普通字符串有所区别。但java把正则表达式作为字符串放在双引号中,需要转义\,比如 \w => “\\w”,、+、()、[ ]等等,不需要再用\转义。数量限定符默认采用贪婪模式,尽可能多的匹配字符,示例。原创 2020-05-21 17:43:17 · 1395 阅读 · 1 评论