自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卖克的专栏

好记性不如烂笔头

原创 MyBatis拦截参数 自动带上limit

  现在公司项目里都是使用mybatis,突然有一天,看到一个奇怪的现象,在controller、service和dao都没有设置查询的 limit x,y ,但是,放开sql打印,确确实实打印了limit语句,并且实际效果也是limit的。   吓得我关了IDE,清了缓存,再试,居然还是一样的...

2020-06-20 17:31:15 116 0

原创 手写sql掉进去的坑

  一个同事出去面试,面试官让他手写sql,也不复杂,就是学生表和班级表关联的查询。然后,他写完了,面试官说是错的,关联的时候就有问题。他百思不得其解,然后找我讨论,sql大概是下面的样子: select a.name , b.name from stuent a , clas...

2020-04-30 10:48:18 110 0

原创 MySQL大表数据处理

  最近,领导发话了,要处理数据量很大的表,提前规避因数据量大而导致,查询、更新操作缓慢的问题。   数据量很大的表,我看了下,最多的records表,2400w条记录。   拉上DBA,一起断断续续的讨论了一个多星期,确定了方案(还不是最终方案,哎,跨部门协作,效率是真低)   前前后后讨...

2020-04-22 18:10:30 74 0

原创 mybatis插入数据 获取自增id异常

  错误信息: Error getting generated key or setting result to parameter object. Cause:org.apache.ibatis.binding.bingingException: parameter ‘id’ not fou...

2020-03-31 20:05:26 107 0

原创 json-lib的坑

  入职了一家新公司,新公司内网隔离,上外网,只进不出。使用的技术架构,虽然说已经用SpringBoot了,但是,各种细节不规范啊,还记得第一天下载了项目,都跑不起来,找了半天原因,原来是项目不是标准的Maven项目,应该是resources目录,它却是resource,少了一个s,导致编译器找不...

2020-03-07 14:50:39 136 0

原创 可执行jar打包成exe文件(运行无须jre环境)

  可执行jar打包成exe文件,最常见的大概就是exe4j了吧。不过,现在都2020年了,这里介绍一下,使用 java8提供的 javapackager 的方式来实现。 预备工作   首先,需要预备工作 1.java8环境   这个就不用多说了 2.Inno Setup Compile...

2020-01-28 16:01:30 499 1

原创 记一次FileNotFoundException异常

  同事提交了代码,就回去过春节了,今天,业务人员来说他昨天修改的东西有问题,要我处理。看了下日志,发现是这个很easy的异常 java.io.FileNotFoundException: \excel-templates\123 (系统找不到指定的路径。)   看错误信息,就知道是xls...

2020-01-20 17:13:03 146 0

原创 MySQL中IN对NULL的处理

  先说结论,MySQL中NULL是不参与计算的,对NULL进行计算,只可以使用预设的IS NULL和IS NOT NULL来操作   student表中,有三条数据,id分别是1、2、3 SELECT * FROM student WHERE id IN (1,2,...

2020-01-08 09:30:49 459 0

原创 SpringBoot整合Shiro

  兜兜转转,转眼已经进入12月中旬了,马上就是2020年了,回顾这一年,技术上,真的提升很少很少,项目中使用的技术都是很老套的SpringMvc+MyBatis,有的老项目还使用的是Struts2+Hibernate,公司对技术也不重视,在稳定的基础上,不求有功,但求无过;也没有什么技术分享。我...

2019-12-16 18:07:52 54 0

原创 java识别验证码

  之前在做数据核对部分工作,需要获取厂商的数据,有的厂商提供了api,可以直接通过api拿到数据;有的就没api,这部分,只能去它们后台获取了,那就需要爬虫,但是,过程中,又碰到登陆的验证码。这里记录一下识别验证码的过程。 使用tess4j 1.下载tessdata和训练语言包   在te...

2019-12-10 14:48:27 334 0

原创 docker开启consul后 莫名连不上8500端口

  一个新项目,需要本地跑docker环境,配置完后,一切正常。过了几个小时,项目就各种报错,然后就全部不能用了,排查下来,原来是项目连consul超时了,导致后续都走不下去了   然后就看consul出啥问题了,在docker下查看进程 docker ps -a   看到consul是...

2019-12-02 09:57:54 601 0

原创 git 回滚到指定版本

1.切换到分支 git checkout testBrand 2.获得版本号 git log   查询历次提交记录,得到版本号,比如,当前是“测试03”版本,要回滚到“测试02”版本,这里需要的版本号是 0090e3e7571931d2a08b95bde770790fd9602...

2019-11-29 14:14:12 111 0

原创 XMLSerializer的一个bug

  相同的代码,读取未格式化xml和已格式化xml,未格式化的解析起来报错,代码很简单 1.java解析代码 // getResponseContent(fileName) 从指定文件名中读取文件内容作为字符串 String responseXML = getResponse...

2019-11-20 13:42:33 76 0

原创 SessionContext must be an HTTP compatible implementation

  使用SpringBootTest和shiro结合时,发生的异常。具体信息: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.la...

2019-11-12 17:08:00 621 0

原创 No SecurityManager accessible to the calling code

  使用SpringBootTest和shiro结合时,发生的异常。具体信息: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apa...

2019-11-12 17:02:14 89 0

原创 记一次XSS注入问题

  事由:业务人员突然反馈后台的数据显示不正常,让技术找原因。 1.排查问题   我在排查问题的时候,发现是用户在提交的时候,后端没有对内容进行XSS过滤,导致数据库中存入了脚本,包含脚本的内容返回给了前台,绘画页面的时候,因为脚本的标签没闭合,导致了绘画中断,所以页面显示不正常。   数据库...

2019-11-07 17:18:23 69 0

原创 nginx 使用 demo

说到http的呆梨,大家肯定知道有正向呆梨和反向呆梨。 正向呆梨:用于呆梨内部网络对Internet的连接请求,客户机必须指定呆梨服务器,并将本来要直接发送到Web服务器上的http请求发送到呆梨服务器中。 举个栗子:我想访问一个网站,但是,直接访问不了,比如在国内访问google....

2019-10-28 14:28:09 496 0

原创 2PC和后置提交

  分布式事务,常见的是2pc、tcc   2pc是分为两个阶段:preCommit和commit,多个节点preCommit成功,协调者再通知各节点,去commit   tcc是try-confirm-cancel,try阶段是各节点去检查参数和执行,若有一个节点出问题,则进入cancel阶...

2019-10-24 09:18:19 72 0

原创 java里为什么要set/get方法?

  今天在刷掘金的时候,看到一篇文章Java Getter/Setter “防坑指南” 来了里面有说道: 通过使用 Getter/Setter 方法,变量的访问(get)和更新(set)将变得可控。考虑以下 Setter 方法的代码 public void setName(String ...

2019-10-09 10:22:19 60 0

原创 https成长史

基础名词   先说一下基础名词,对称加密、非对称加密   对称加密:加密、解密使用同一副秘钥的加密算法,比如DES   非对称加密:加密、解密使用不同秘钥,加密使用公钥,则解密须使用私钥;反之亦然。比如RSA https 对称加密 https使用对称加密,流程 浏览器请求服务器,服务器...

2019-10-04 10:21:07 97 0

原创 kafka是如何支撑百万连接的?

   kafka使用了reactor多路复用机制    传统的机制,一个连接一个线程:当连接的数量很大,对应的处理线程数量也很大,服务器必然不堪重负。如果有一万个连接,那就对应有一万个线程去处理。    reactor机制:       1.由一个acceptor线程,监听连接的建立,连接建...

2019-09-29 14:15:39 68 0

原创 javax.crypto.BadPaddingException

  错误信息: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. ...

2019-09-10 15:56:49 958 0

原创 kafka是如何实现高性能的写入和读取的?

写    页缓存(page cache) + 顺序写入磁盘    页缓存:操作系统的内存缓存,kafka写入是写入到内存缓存,然后再从内存缓存刷到磁盘    顺序写入:一般情况,写磁盘是需要寻找适宜的磁盘空间的。kafka改变策略,直接在尾部追加 读    零拷贝技术    正常情况下...

2019-08-29 15:02:40 317 0

原创 mysql使用in查询 若不加引号,只会匹配前16位

  

2019-08-14 17:22:22 89 0

原创 RSA+Base64工具类

   RSA+Base64工具类 RSA加密后的,需要进行base64 /** * BASE64工具类 * * @author Frank.Z * */ public class Base64Utils { static private final int BASELENGTH = ...

2019-07-29 15:48:37 93 0

原创 mysql使用double的坑

  碰到一个很奇葩的问题,mysql默认是四舍五入的,但是,使用double,有时候不四舍五入。 犯罪现场还原 表结构 CREATE TABLE `test` ( `salary_decimal` decimal(11,2) DEFAULT NULL, `salary_double...

2019-06-24 18:45:09 3784 0

原创 数据库分表后 如何优雅的扩容

停服方案   很low的方式,【停服方案】,先发公告,再停机,再迁移数据,测试没问题再发布。 双倍扩容法   按id取膜,假设,开始是 %2, %2=0 –>库0 %2=1 –>库1   1.双倍扩容,扩容后是四个, %4 库0和库1 依旧,多出来库00和库11,库0和库0...

2019-06-19 16:02:33 642 0

原创 java实现单链表、双链表、环链表

  链表是程序里重要的数据结构,在程序世界运用很广泛,众所周知的当属于jdk里的linkList了。   链表的优点,是相对于数组来说,扩容是非常快的,如果是数组扩容,数组是新申请一个更大空间的数组,然后把老数组内的数据复制到新数组;而链表就不必申请新链表,直接再分配一个元素的存储空间即可。 ...

2019-05-31 18:12:29 84 0

原创 jdk7和8 内存可见性上的一个小细节

  在看一篇关于jvm内存可见性的文章的时候,无意中发现了jdk7和jdk8在处理上的细微差别,导致了两种截然不同的效果:jdk7(文中使用的是1.7.0_67)会顺利执行完;jdk8(文中使用的是1.8.0_192)会一直卡住。   下面是具体代码: public class Thread...

2019-05-20 14:40:58 223 0

原创 chrome浏览器如何跟踪新开标签的网络请求?

  在测试一个东西的时候,它虽然是a链接,但是,是由前端在js里写跳转的。我又必须要知道它的跳转链接,js还加扰了,看不了。最后只能用截屏的方式来捕捉浏览器的地址栏链接(没知识真可怕)   后来谷歌了才知道,chrome自从 Chrome 50 版本就支持这个功能了。   使用方法很简单  ...

2019-05-03 16:16:17 1872 2

原创 ajax传递参数的一个坑

  上周有一个需求,需要使用ajax请求后端,参数是比较复杂,有普通字符串也有对象数组。之前都是使用form表单来实现的,效果是这样的   后来,需求变更了,需要提交局部表单的效果。既然是局部的内容提交,那就不能使用form来实现了,我就想着用js手动拼接对象,传输给后台。代码如下: ...

2019-04-24 18:19:37 2785 0

原创 org.jasypt.exceptions.EncryptionOperationNotPossibleException

  项目中使用的是Spring框架,上周部署到测试服务器的时候,莫名其妙的报这个错,本地是没问题的。报错信息: SEVERE: Exception sending context initialized event to listener instance of class org.sprin...

2019-04-04 13:53:26 5642 2

原创 记一次文件上传的坑

  前段时间我们系统被黑客攻击了,后来查明,是利用上传文件的漏洞。于是老大就让下面的人写个拦截器,对上传文件的内容进行审查。代码乍一看,是没啥问题的,但是,这几天我正好闲着,就多测了测,居然无意中发现了两个bug。   下面的伪代码: @Override public void doFilt...

2019-04-01 18:19:39 1685 0

原创 线上系统的JVM内存是否设置的越大越好?

  ”线上系统的JVM内存是否设置的越大越好?”乍一听到这个问题,我第一个反应就是“NO”,但是,具体为什么不行,又说不出什么所以然来。   其实,说一个东西不行,我们只要说出几个“缺点”就可以了,如果还能列举出几个反例,特别是被广泛认可或广泛采用的反例,那就更好了。 JVM并非十全十美  ...

2019-03-21 15:53:53 2240 0

原创 真随机数和伪随机数

随机数的特性   随机数最初是应用在密码学的,后来也逐渐大量使用于编程语言领域。关于随机数,它有三个特性: 随机性:完全乱序; 不可推测性:从已有的数,无法推测出下一个数; 不可重复性:随机数之间不重复。 真随机数和伪随机数 真随机数   真随机数是伴随着物理实验的,比如:抛硬币、掷骰...

2019-03-15 17:34:37 4250 0

原创 如何理解"一致性hash"?

一句话解释什么是“一致性hash”    字面解释:外界条件发生了改变,而hash后的结果仍然保持较高程度的一致性。 问题背景    问题背景:假如有4个缓存节点,按照取膜的方式进行分配数据(对4取膜,0/1/2/3 分别对应a/b/c/d节点),假若d节点挂了,那四个节点的数据都不能使用了...

2019-03-11 15:19:00 1755 0

原创 多线程 循环输出ABC AtomicInteger和Semaphore方案

  看到一篇文章,说的是“多线程情况,如何循环输出ABC”,里面介绍了好几个方案,其中有一种是使用AtomicInteger原子性类去实现。 AtomicInteger方案,循环输出ABC   它的思路呢,是三个线程,同时去操作AtomicInteger类,然后对atomicInteger的值...

2019-02-27 16:28:44 1996 0

原创 HttpClient使用setEntity传递参数 无法获取参数?

  今天在接入一个第三方支付,在接入的时候,碰到一个问题:第三方在回调我方的时候,第三方居然只有一个json字符串。一般情况,都是Key:Value的形式,根据Key去获取对应的Value,所以我就有点蒙逼了。   去联系第三方,让他们提供demo,然而,人家说没有demo,核心代码都已经在文档...

2019-02-19 18:04:16 12657 4

原创 spring boot输出日志到文件,遇到的问题

  一个非常简单的问题,我却纠结了半个下午。   Spring boot的日志默认是输出控制台的,如果想记录到文件,只需要在application.properties文件指定logging.path或者logging.file即可。我按照配置,在配置文件,追加了配置    loggi...

2019-01-28 09:35:44 7977 8

原创 like百分号前置不会走索引?NO!

  “模糊查询,前置百分号不走索引;后置百分号才会走索引”这可能是大部分人都知道的“常识”,然而,这周在做SQL优化的时候,无意中碰到了意外情况–模糊查询,前置百分号也走索引! 举个栗子 表: TEST_USER 索引:INDEX_MOBILE CREATE TABLE `TEST_USER...

2019-01-22 15:14:50 3446 2

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