
散记杂文
这个栏目都是一些零零碎碎的东西,ide使用啊,环境问题啊,踩坑啊等等等
菜鸡的挣扎
人生是公平的,得到了金钱必将失去烦恼
展开
-
判断线程池是否全部完成的各种姿势 - 5种奇特的招式
判断 Java 线程池是否全部完成,以 ThreadPoolExecutor 为测试线程池,包含以下方法:isTerminated() 判断方式,getCompletedTaskCount() 方法,CountDownLatch 计数器,手动维护一个公共计数, Future 装载结果原创 2020-06-09 22:37:48 · 3397 阅读 · 1 评论 -
简单实现修改内容前后变动日志(注解+反射)
需求说明实现目标:把修改的具体字段名以及修改前后内容做日志记录实现效果:集装箱数量:【1】变更为【3】;集装箱型:【40 Dry High】变更为【40 Dry Standard】;起运时间:【2021-09-16】变更为【2021-09-30】;自动下单限额:【1200.00】变更为【1500.00】;实现思路为了做到尽量通用,先假设实体类都实现了序列化 Serializable 。在实体中添加自定义注解反射,获取到字段,扫描存在注解的字段将修改前后的字段值做对比存在修原创 2021-09-18 23:14:07 · 1494 阅读 · 0 评论 -
swagger 在线文档分组,分包形成文档
knife4j 是一个贼不错的swagger扩展工具,有一套很不错的UI。还带有离线文档下载,最让我喜欢的是每一行字段都直接动态对比说明。访问地址:http://localhost:8080/doc.html文档地址:knife4j (xiaominfo.com)依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2<原创 2021-09-03 00:39:59 · 460 阅读 · 0 评论 -
阿里云OSS上传图片、PDF设置链接预览
去年的OSS还是链接可预览,今年可能是阿里云OSS升级了,变成直接下载了。所以重新改回预览,其他全部不变,上传添加 contentType 配置//文件名String originalFilename = file.getOriginalFilename();//拿到.后缀String type = originalFilename.substring(originalFilename.lastIndexOf("."));ObjectMetadata metadata = new Object原创 2021-08-12 20:59:31 · 6399 阅读 · 0 评论 -
StringBuffer 和 StringBuilder 的区别 - 源码解析、内容扩展
概述阅读 Java 版本为 1.8.0.25。先看 StringBuffer 和 StringBuilder 的继承关系图。StringBuffer 和 StringBuilder 都继承了 AbstractStringBuilder ,都是通过 char[] 数组实现,因为未加 final 修饰符,所以可修改。两者简单来说:StringBuffer :是一个线程安全类,方法使用 synchronized 修饰加锁,执行速度稍微慢点。StringBuilder :线程不安全,执行速度快。单线原创 2020-09-06 22:06:52 · 197 阅读 · 0 评论 -
SpringBoot 配置SSL证书,同时支持 http 与 https
前言废话就不多讲了,直接开始。我用的是阿里云免费版 DV SSL 证书,流程中需要做域名验证,最后下载证书。阿里云,云盾免费证书申请,验证,下载证书(Tomcat)。配置文件支持 HTTPS配置类支持 HTTP证书获取阿里云证书申网上多的是,而且貌似也没有啥困难。申请成功后下载证书:SpringBoot 使用的是内置 Tomcat , 所以证书类型需要选择 Tomcat 。下载后会有一个 pfx 文件 和一个密钥文件。如果前置了 Nginx ,也需要下载 Nginx 证书且自原创 2020-07-27 14:40:33 · 695 阅读 · 0 评论 -
ECharts 绘制地图飞线
以 echarts 官方示例为基础起点,绘制地图飞线原创 2020-07-18 21:47:42 · 6992 阅读 · 2 评论 -
widnows 安装 redis,快捷启动、后台运行
widnows 安装 redis,提供 redis desktop manager ,后台运行快捷启动原创 2020-06-18 10:49:12 · 262 阅读 · 0 评论