自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

静下心来 静下心来

坚信一万小时天才理论 https://puhaiyang.github.io

原创 POI克隆sheet原来这么简单

背景 因为项目需要,需要生成EXCEL,为了开发的方便,使用了阿里的EasyExcel,并使用了模板excel进行填充。 但由于需要根据数据动态填充多个sheet,所以便决定用代码先动态生成excel模板,在动态生成excel模板时需要将原始的模板sheet进行复制 为了实现sheet的复制在快速...

2020-05-28 10:29:30 16 0

原创 釜底抽薪之---彻底解决kubernetes dashboard支持所有浏览器访问
原力计划

公司的运维大佬为了让我们这些研发小弟方便地查看公司本地开发环境的日志,在公司kubernetes集群里特意为我们装了kubernetes的dashboard 但是使用时有一点感觉挺不方便的,那就是只能用firefox浏览器打开,因为dashboard的证书不安全 但我用起来始终觉得有点别扭,身...

2020-05-07 14:49:56 194 0

原创 采用rancher2+kubernetes+skywalking部署springcloud项目(一[k8s yaml版本])
原力计划

前言 最近在网上看到一个名为rancher的矿建,据说可以快速搭建一个kubernetes的集群,便决定初步学习尝试部署一下。 为了学习与部署方便,便在网上找了一个名为spring-boot-cloud的开源项目,看了下spring-boot-cloud项目比较简单但该有的功能都有,便决定将此...

2020-04-26 22:53:53 404 3

原创 JAVA行转列工具类

目录 show me the code 使用方法 测试代码 有时为了统计的需要,需要将数据进行行转列,在数据库中一般用CASE WHEN语句来解决,但无法生成生成列标题,如果遇到想动态生成列的情况,用CASE WHEN便不是那么好处理了 正好最近我的一个个人小项目中遇到了这个问题,需要根...

2020-04-03 14:55:46 235 0

原创 kubernetes实现spring cloud服务平滑升级的一种解决方案

又是三月天 因为过年加上疫情的原因,2020年的2月没有了对时间的概念 也因为疫情的原因,今年回到了离别多年的家乡 家乡还是以前的样子 只是许多以前的一起玩耍的小伙伴们大多都结了婚,出了嫁 曾经那些个青涩的我们就像罗大佑唱的歌里说的那样: 轻飘飘的时光就这么溜走,转头回去看看时已匆匆数...

2020-03-04 15:05:15 260 0

原创 在docker中让java程序支持https双向认证

对于https稍微详细的一点的流程,在之前的文章《java实现http/https抓包拦截》中有过一些记录,这里不再详细说明。 https双向认证 按照我的个人理解,所谓https的双向认证简单点来说也就是:客户端(client,一般是浏览器)不仅要验证来处服务端(server)的请求是否合法...

2020-02-25 21:55:02 306 0

原创 java线程池ThreadPoolExecutor通过submit提交runnable的task时,为何不会抛出oom

show me the code import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadLocalOomTest { public s...

2020-01-20 14:35:57 291 1

原创 ReentrantLock是如何实现公平锁与非公平锁的?

Lock作为多线程编程中的一个基础,与Lock对应的关键字为synchronized,同时大家都知道lock与synchronized的一个明显区别是Lock中的锁可以是公平锁,synchronized只能为非公平锁。本文将通过分析jdk的源码来了解ReentrantLock中公平锁和非公平锁的实...

2019-11-26 17:11:43 341 1

原创 java实现http/https抓包拦截

最近在调试一个项目时常常需要对接口进行抓包查看,接口位于微信的公众号内,目前每次调试时都是用的 fiddler进行抓包查看的。但每次打开fiddler去查看对应的接口并找到对应的参数感觉还是有点复杂,正好今天是周末,打算自己来研究下它的原理并自己通过java来写一个(之所以知道java可以实现这个...

2019-11-11 16:25:57 1424 6

原创 vux-xscroll-解决ios升级到13后停止滑动自动退回到顶部的问题

问题描述: 根据用户反映,发现在ios系统中用vux-xscroll组件写的界面会出现停止滑动自动回到顶部的问题,然后找了几个手机试了下,发现升级了ios13的有问题、ios13以下的没有问题、安卓的没有问题 解决办法: 由于目前vux-xscroll不再维护了,只能自己修改组件的源码了。 ...

2019-10-30 17:14:47 521 0

原创 采用开源框架captcha_trainer自动识别不定长验证码

由于经常需要登录某系统进行测试,但系统里有验证码每次都要进行输入感觉稍微有点繁琐。为此打算采用验证码自动识别的技术来实现。据我所知,目前识别验证码主要可以有以下方式进行解决: 打码平台人工识别 ocr框架自动识别 机器学习自动识别 其中速度上ocr和机器学习去识别验证码的速度是最快的,但oc...

2019-10-30 09:52:38 447 0

原创 在vm下用ubuntu 18.04安装minikube(5分钟完成kubernetes搭建)

原本想用kubeadm来安装k8s,结果折腾了半天没有成功,在看了下k8s的官方文档后发现还有个叫做minikube的东西可以用来快速安装k8s集群。虽然是一个假的k8s集群,但对于开发的我用来研究学习用也够了,而且也只需要一台机器就够了,感觉很方便。 先上安装好后minikube并访问dash...

2019-09-18 18:18:51 1460 3

原创 通过aop实现对mybatis逆向工程生成的SQL动态添加查询条件

问题概述 最近为了公司项目里有一个需求,原本一个用户只可以查询一个地区的数据,现在要让一个用户支持多个地区的数据。 也就是: (1个)user-->(1个)region 现在需要修改为: (1个)user-->(多个)region 其原项目中以前的查询方式是通过like...

2019-09-16 12:46:34 625 0

原创 [canal源码解析]之esAdapter etl功能

在上一篇使用canal client-adapter完成mysql到es数据同步教程(包括全量和增量)编辑的时候看到了esAdapter中对于etl功能的代码,由于之前自己也写过类似的功能点,为此这里我打算再看下阿里的大佬是如何写全量同步代码的,作为学习与借鉴 CommonRest etl类的...

2019-09-02 16:28:57 865 0

原创 使用canal client-adapter完成mysql到es数据同步教程(包括全量和增量)

使用canal client-adapter完成mysql到es数据同步教程环境说明canal 版本mysql版本canal环境安装开启mysql的bin_loges安装kibana安装canal server安装与运行环境配置完毕后的验证mysql中创建测试库和测试表及数据es索引验证及创建目标...

2019-08-31 22:03:00 5596 7

原创 elasticsearch之function score query(自定义排序/打分)从入门到会用

最终,我还是回到了成都。三年上海,曾经厌倦了的繁华都市这些天又常在我眼前浮现,勾起了我一次又一次的思念。 在经过几家公司的面试后,怀揣着对于技术的热爱,最终在几份offer中选择了一家薪资待遇最少规模也最小的创业公司。在工作了一两周后公司给我的感觉并没有像面试官描述的那样,体验后发现对技术充满热...

2019-08-22 22:59:42 3291 0

原创 spring cloud config拉取配置文件原理

一直对spring cloud config是如何从git中加载到配置文件的挺感兴趣的,正好最近不是很忙来跟踪个代码简单研究学习下 对于spring cloud config的教程和demo可以直接从spring的官网进行学习,https://spring.io/projects/spring-...

2019-08-22 11:06:25 827 0

原创 记录一个将数据从mysql同步到es的思路(全量与增量)

个人认为一个项目当它做大做当后都可能会需要将数据从传统的数据库同步到另一种数据集合中,一般用于提高查询效率或将数据进行备份的目的。 其中比较常见的一种同步方式是从关系型数据库同步到es,在查阅了相关的资料后,在这里简单记录下。 全量同步 所谓全量同步就是将一个mysql的整个表的所有数据都同...

2019-07-30 23:31:45 4064 0

原创 hashmap从入门到死锁,再到分段式锁

本文主要内容如下:在jdk1.7和jdk1.8下 hashmap put和get的原理,和可能造成的问题 concurrentHashMap的原理 hashmap入门 直接NEW出来就可以了,想要获取详细信息的这个直接看源码,源码上说的更仔细; 主要有两个参数,一个是负载因子(需要扩容的...

2019-06-04 20:20:51 368 0

原创 mysql事务从入门到熟练

事务的几大特性:ACID 原子性、隔离性、一致性、持久性 并发事务可能带来的问题:脏读、幻读、不可重复读、丢失修改 事务的隔离级别:READ-UNCOMMITTED,READ-COMMITTED,REPEATABLE-READ,SERIALIZABLE spring事务传播行为:REQUIR...

2019-06-04 20:17:09 207 0

原创 通过ssh tunnel让Kali实现内网穿透

拥有设备: 1.Kali 2.0虚拟机一台 2.外网Linux服务器一台,(CentOs x64) 问题如下: 在电脑上安装了一台kali 2.0的虚拟机,通过nat物理机的网卡可以访问互联网,现在想要实现可以通过其他任何可访问到互联网的主机能访问到该Kali 实现操作如下: ...

2019-05-07 11:28:13 4980 0

原创 解决mysql中in子查询导致不走索引

原sql为: SELECT SUM(money) FROM wallet WHERE user_id IN (SELECT DISTINCT user_id FROM user_recharge ...

2019-05-06 19:12:39 3108 1

原创 记录一个面试算法题

这周在QQ群里看到一位朋友问了一个算法题,好像是他面试时遇到的,当时比较忙,大致看了下这个题目,一下子还没有想出来该怎么做,不过我觉得这个题目还是挺有意思的,把题目保存起来了,今天放假上午在图书馆学习时记起了这个题目,就思考了一会,有了思路。下午又有事耽搁去了,没有来将它做完,只得晚上这会稍微闲暇...

2019-04-05 22:10:37 412 0

原创 常用sql记录

1.mysql内实现rownum SELECT @rownum := @rownum +1 AS rownum, e.* FROM (SELECT @rownum := 0) r, employee e 2.获取出重复的记录,保留最新一条 SELECT a....

2019-03-19 15:25:30 130 0

原创 spring项目中多数据源无法切换的原因分析

暂存,空了来补上

2019-02-28 09:36:30 1476 9

原创 在spring中通过Autowired注解巧妙实现策略模式

在最近的一个项目中由于项目需要,需要将代码进行扩展与兼容处理,我在最开始时是通过配置文件的方式去实现的,但代码写着写着就发现对于某些需要配置的地方比较少的话还好处理,但是对于需要灵活变动的地方太多的话写起来就太麻烦了,而且写起来也感觉比较容易出错,于是考虑到了是否可以用JAVA的策略模式去实现呢?...

2019-01-29 23:19:37 3510 0

原创 idea找回Run Dashboard

在开发类似spring cloud的项目时,由于需一下子启动很多项目,如果单纯靠通过鼠标一个一个地点击进入项目中会比较耗时,idea中有一个Run Dashboard面板,可以通过它直观且快速地启动某一个子项目。 like this: 如果在idea中找不到此面板了,可以通过如下的方式找回...

2019-01-08 18:38:41 1502 0

原创 2018年个人总结

仍然是抓住月底的尾巴,在这个月同时也是今年的最后一天,来回忆纪录下这一年吧。 2018总结 2018年,是大学毕业后完全走向了社会的第一年,这一年也是经历比较多的一年,在生活中接触了一些以前没有接触过的地方,渐渐地也让我意识到了我真的确实不再是个孩子,是一个社会人这个角色的转变;有些事情,做了...

2018-12-31 23:35:03 890 1

原创 java访问非经过信任证书https的方法

由于项目需要,需要调用第三方的API接口,为了简单方便与快速开发,便采用了httpClient来进行调用。 <dependency> <groupId>org.apache.httpcomponents</group...

2018-11-14 16:29:22 1682 0

原创 https从入门到免费

  https简介 网景公司(Netscape)为了加强http协议的安全性,发明了一种叫做SSL(Secure Sockets Layer 安全套接层)的协议,它将SSL加入到了http协议中,于是便有了https协议的诞生。 SSL Secure Socket Layer,其协议中主要...

2018-10-31 16:32:40 289 0

原创 Classloader与Thread.currentThread().getContextClassLoader()区别

匆匆九月,回到目前的创业公司工作已满二个多月了。回来后每天都有干不完的任务,对于每天的工作每天也很少有时间来进行总结与思考。仿佛让我想到了两年前刚来这家公司时的样子,虽然一直很忙有事干,但有一种瞎忙的感觉,每天看似很充实,但回过头来看其实是很空的,很有一种打酱油的感觉,这样长此以往下去个人感觉对于...

2018-09-30 22:47:52 9413 0

原创 微信小程序---通过二次贝塞尔曲线画波浪

这两周做一个新的项目,人员比较紧张,除了需求和UI,前端后端一个人来干。 在项目需求确定后,UI隔了几天设计出了UI界面,拿到UI效果图后见有一个界面有波浪效果的我当时就蒙圈了,这都啥玩意啊?转念想到了最近在IT圈挺火的那个事件:产品要求安卓程序员实现根据用户手机壳颜色自动更换APP主题的需求后...

2018-08-16 21:51:34 3340 5

原创 通过【lintCode-15全排列问题】学习DFS算法

这周发现毕业一年后自己对于技术的激情好像变得已经没有以前那么热爱与执着了,不再像以前那样每天想着都在学习新的技术,也不再因为每天没有学习到新的东西而会感到负罪感。也或许是我在大公司里由于长期没有压力的工作让我习惯了这样的日子,日复一日的轻松惯了导致的,但偶尔理智的我知道这种轻松的日子并不是我所想要...

2018-07-31 21:39:28 393 0

原创 lintCode-92.背包问题.dp解法

上周软考成绩出来了,当看到成绩的时候感觉还是有点小小的遗憾——差了5分。好几个周末都泡在图书馆里潜心修炼,尽管结果没能达到我的预期,但也让我发现了周末的新玩法-->泡图书馆,在通过以往几周的体验后发现其实这也是一种挺不错的选择方式,特别是炎热的夏天和寒冷的冬天,有免费的空调和安静的环...

2018-07-22 18:15:03 537 0

原创 ebean报错:NotifyOfCommit failed. L2 Cache potentially not notified解决办法

问题描述公司中的一个项目用的ebean框架,有一次在程序的JAR包关闭过程中发现了如下错误[Thread-2] INFO com.bigdata.datacenter.datasync.server.mysql.MysqlSubjectServer - 扫描程序关闭中... [Thread-2] ...

2018-07-07 21:15:45 326 0

原创 记录一个oracle表结构迁移方法

是否大学毕业后,生活中的一切才是真正的开始?作为一名毕业已满一年的IT狗,这个问题常常入我脑海中来,但始终没有确切的答案。这些天常能看见穿着学士服的师弟师妹们发的动态,偶念一想去年今日此门中那些发着动态的是我们。-------------------------------------------...

2018-07-03 21:03:40 1072 0

原创 记录一个mysql大量数据快速插入的方法

经过数月的历练与开发,终于在这个月手上负责的一个项目即将交付了,看着这一两个月让我偶感压力的繁杂的事情一件件处理完毕,原本动荡的心静也渐渐平静了些许。此时再回过头过去看那些困扰我N多个日夜的某些问题其实也不过如此。有些事情自己无法改变,只能乐观地坦然地面对。面对充满未知的未来努力让自己保持每一天都...

2018-06-16 13:52:10 19575 4

原创 那些天,我用错的JAVA线程池用法

最近项目一个项目要结项了,但客户要求TPS能达到上千,而用我写的代码再怎么弄成只能达到30+的TPS,然后我又将代码中能缓存的都缓存了,能拆分的也都拆分了,拆分时用的线程池来实现的;其实现的代码主要为以前写的一篇博客中的实现方式来实现的。如下:多线程之futureTask(future,calla...

2018-05-31 22:44:22 652 2

原创 采用springboot+flowable快速实现工作流

前言 工作流框架大家一定不陌生,各种OA系统里我们常常用到。 对于JAVA领域来说一说起工作流框架第一浮现我在脑海中的便是大名鼎鼎的Activiti了。很久以前学习Activiti框架时我也曾记录过一篇文章。见链接:工作流框架Activiti常用功能初探 尽管当时只是学习了一下在之后的相关...

2018-04-07 23:04:21 126739 100

原创 Spring Cloud中restTemplate是如何通过服务名主求到具体服务的?

最近的项目是基于spring cloud中,其中对于服务的调用,是通过restTemplate来发送http请求调用的,但请求地址为http://SERVICE-NAME/questpath,如下面这样:@RestController @RequestMapping(value = "h...

2018-03-25 17:38:48 10589 4

提示
确定要删除当前文章?
取消 删除