自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卖克的专栏

好记性不如烂笔头

  • 博客(203)
  • 资源 (8)
  • 收藏
  • 关注

原创 Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean

异常信息Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean问题分析  按照网上的资料,@SpringBootApplication注解是存在的、spring-boot-starter-web的依赖也是存在的,百思不得其解,然后问了其他同事,他们本地是启动正常的。  又把spring-boot-starter-tomcat的scope注释了,仍然不行。

2021-04-06 19:46:33 1215

原创 mybatis plus argument type mismatch

  异常信息  项目中使用了mybatis-plus,一个功能,昨天还使用的好好的,今天突然就不能用了,控制台还报错 argument type mismatchjava.lang.illegalArgumentException:argument type mismatchorg.mybatis.spring.MyBatisSystemException:netsted exception is org.apache.ibatis.reflection.ReflectionException:E

2020-11-13 17:47:35 3402 2

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

  现在公司项目里都是使用mybatis,突然有一天,看到一个奇怪的现象,在controller、service和dao都没有设置查询的 limit x,y ,但是,放开sql打印,确确实实打印了limit语句,并且实际效果也是limit的。  吓得我关了IDE,清了缓存,再试,居然还是一样的。  奇了怪了,这个为什么会自动加上limit查询呢?难道是mybatis新出的黑科技?但是,我看mybatis的版本,也才mybatis-spring-boot-starter 1.3.2,还是2018年3月

2020-06-20 17:31:15 3297 3

原创 手写sql掉进去的坑

  一个同事出去面试,面试官让他手写sql,也不复杂,就是学生表和班级表关联的查询。然后,他写完了,面试官说是错的,关联的时候就有问题。他百思不得其解,然后找我讨论,sql大概是下面的样子:select a.name , b.namefrom stuent a , class b on a.name=b.name  我乍一看,貌似是没问题的啊,内连接的 inner j...

2020-04-30 10:48:18 1063

原创 MySQL大表数据处理

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

2020-04-22 18:10:30 1104

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

  错误信息:Error getting generated key or setting result to parameter object. Cause:org.apache.ibatis.binding.bingingException: parameter ‘id’ not found. Available parameters are …出现问题原因,在DAO中的入参,是字符...

2020-03-31 20:05:26 1299

原创 json-lib的坑

  入职了一家新公司,新公司内网隔离,上外网,只进不出。使用的技术架构,虽然说已经用SpringBoot了,但是,各种细节不规范啊,还记得第一天下载了项目,都跑不起来,找了半天原因,原来是项目不是标准的Maven项目,应该是resources目录,它却是resource,少了一个s,导致编译器找不到资源目录;代码基本没有注释,理解起来全靠猜,这个对于不熟悉业务的新人来说,真的好痛苦。幸亏薪资给的不...

2020-03-07 14:50:39 1230

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

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

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

原创 记一次FileNotFoundException异常

  同事提交了代码,就回去过春节了,今天,业务人员来说他昨天修改的东西有问题,要我处理。看了下日志,发现是这个很easy的异常java.io.FileNotFoundException: \excel-templates\123 (系统找不到指定的路径。)  看错误信息,就知道是xls的模版在服务器上没有被程序获取到,又看了下git上是有的,那绝壁是运维哥哥的锅了。  果断吊运维去...

2020-01-20 17:13:03 2425

原创 MySQL中IN对NULL的处理

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

2020-01-08 09:30:49 8794

原创 SpringBoot整合Shiro

  兜兜转转,转眼已经进入12月中旬了,马上就是2020年了,回顾这一年,技术上,真的提升很少很少,项目中使用的技术都是很老套的SpringMvc+MyBatis,有的老项目还使用的是Struts2+Hibernate,公司对技术也不重视,在稳定的基础上,不求有功,但求无过;也没有什么技术分享。我经历过上家公司的快速节奏,现在也放松下来了,去年我还自学python、学习数据结构和算法、碰到的技术问...

2019-12-16 18:07:52 916

原创 java识别验证码

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

2019-12-10 14:48:27 2030

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

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

2019-12-02 09:57:54 4227

原创 git 回滚到指定版本

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

2019-11-29 14:14:12 2462

原创 XMLSerializer的一个bug

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

2019-11-20 13:42:33 1020

原创 SessionContext must be an HTTP compatible implementation

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

2019-11-12 17:08:00 3861 2

原创 No SecurityManager accessible to the calling code

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

2019-11-12 17:02:14 2292 2

原创 记一次XSS注入问题

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

2019-11-07 17:18:23 1017

原创 2PC和后置提交

  分布式事务,常见的是2pc、tcc  2pc是分为两个阶段:preCommit和commit,多个节点preCommit成功,协调者再通知各节点,去commit  tcc是try-confirm-cancel,try阶段是各节点去检查参数和执行,若有一个节点出问题,则进入cancel阶段;若都顺利执行完,则进入confirm阶段    后置提交,在大佬58沈剑的文章分布式事务...

2019-10-24 09:18:19 859

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

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

2019-10-09 10:22:19 1578

原创 https成长史

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

2019-10-04 10:21:07 371

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

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

2019-09-29 14:15:39 2142

原创 javax.crypto.BadPaddingException

  错误信息:javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. at com.sun.crypto.provider.CipherCore.doFinal(Ciph...

2019-09-10 15:56:49 5048 2

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

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

2019-08-29 15:02:40 736

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

  

2019-08-14 17:22:22 833

原创 RSA+Base64工具类

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

2019-07-29 15:48:37 495

原创 mysql使用double的坑

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

2019-06-24 18:45:09 15707 1

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

停服方案  很low的方式,【停服方案】,先发公告,再停机,再迁移数据,测试没问题再发布。双倍扩容法  按id取膜,假设,开始是 %2, %2=0 –>库0 %2=1 –>库1  1.双倍扩容,扩容后是四个, %4 库0和库1 依旧,多出来库00和库11,库0和库00互为主从,库1和库11也互为主从。  2.待数据同步完毕,修改路由规则, %2 –> %...

2019-06-19 16:02:33 1382

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

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

2019-05-31 18:12:29 219

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

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

2019-05-20 14:40:58 470

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

  在测试一个东西的时候,它虽然是a链接,但是,是由前端在js里写跳转的。我又必须要知道它的跳转链接,js还加扰了,看不了。最后只能用截屏的方式来捕捉浏览器的地址栏链接(没知识真可怕)  后来谷歌了才知道,chrome自从 Chrome 50 版本就支持这个功能了。  使用方法很简单  1.打开浏览器控制台(F12)  2.使用三点菜单(F1,控制台右上角X号旁边的那个按钮打开 s...

2019-05-03 16:16:17 10755 3

原创 ajax传递参数的一个坑

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

2019-04-24 18:19:37 4119

原创 org.jasypt.exceptions.EncryptionOperationNotPossibleException

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

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

原创 记一次文件上传的坑

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

2019-04-01 18:19:39 2058

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

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

2019-03-21 15:53:53 3447

原创 真随机数和伪随机数

随机数的特性  随机数最初是应用在密码学的,后来也逐渐大量使用于编程语言领域。关于随机数,它有三个特性:随机性:完全乱序; 不可推测性:从已有的数,无法推测出下一个数; 不可重复性:随机数之间不重复。真随机数和伪随机数真随机数  真随机数是伴随着物理实验的,比如:抛硬币、掷骰子、电子元件的噪音、核裂变等,它的结果符合三大特性的。  具体实现:intel通过电阻和振荡器生成...

2019-03-15 17:34:37 7720

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

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

2019-03-11 15:19:00 2227

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

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

2019-02-27 16:28:44 2699

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

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

2019-02-19 18:04:16 27187 6

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

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

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

maven方式下载指定jar

maven 下载 指定 jar

2016-08-17

jquery-1.11.1.js+jqury.json.2.4.js.rar

jquery-1.11.1.js+jqury.json.2.4.js.rar

2016-03-27

mybatis 映射 生成

mybatis 映射 生成 dao、entity、mapper

2016-02-02

hibernate 4.2.0 jar

hibernate 4.2.0 jar 留着给自己做个备份

2015-11-09

jquery 异步上传文件

利用jquery,实现界面的无刷新的上传。后台是struts。实例,可直接运行

2014-12-25

java发送邮件

利用java技术,实现发送邮件的实例

2014-12-25

poi对excel和word的读取

poi对excel和word的读取,支持2003和2007

2014-12-24

poi对excel的导出 可直接运行

poi对excel的导出 ,下载后, 可直接运行

2014-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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