加载中
SpringWeb参数校验,好混乱

参数校验是日常工作里写的比较多的且十分无聊的工作,虽然spring/springboot整合了hibernate validator,可是具体到以下常见的场景,用着还是很不爽,本文尝试提出一个较为合适的套路,来适配...

01/05 21:50
62
分布式锁:redis与zk(redisson VS curator)

分布式锁用redis和zk来实现,是常见的做法,下面简单列一下两方的优缺点: redis版本应该是4.0以上,redisson版本3.14.0 public class RedissonLock { private static int count = 0; public...

redisson+spring aop实现限流

redisson的限流原理(后面还有新版本方案) RRateLimiter limiter = redisson.getRateLimiter("myLimiter"); // one permit per 2 seconds limiter.trySetRate(RateType.OVERALL, 1, 2, Rate...

2020/12/18 18:00
385
Spring Controller的private方法在AOP场景下的Null异常

先说结论再分析原因: 如果Controller存在AOP切面等动态代理行为,并且Controller注入了service bean,那么如果方法是private修饰,该方法在调用service时会报空指针异常,改为public/protec...

2020/11/09 18:06
399
Apache Arrow,消除序列化与反序列化的损耗,GC友好的框架

大家有没有想过一个问题,RPC的实现分两部分,序列化与反序列化协议和传输协议,其中传输协议可以用TCP/UDP/HTTP等,序列化与反序列化协议可以用JSON/XML/ProtoBuf/hessian等等,那么能不能消...

2020/09/18 19:34
369
ScheduledThreadPoolExecutor分析与线程池防坑

Java线程池使用不当会导致很多线上问题,常见的有: 线程池默认使用无界队列,任务过多时,JVM OOM 不设置最大线程数,线程数目暴涨 定时执行,执行一次任务耗时太长甚至一直阻塞,达不到定时...

2020/09/10 17:13
543
mybatis当传入数据类型为Int时并且值为0时,会判断为空字符串

一个小bug,不过可以调一下mybatis的逻辑,首先加日志打印一下mybatis的日志 log4j2.xml,日志输出有点儿多 <?xml version="1.0" encoding="UTF-8"?> <configuration status="OFF"> <appende...

2020/06/19 19:43
434
搭建一个zookeeper源码调试环境

搭建一个多节点的zookeeper源码调试环境,来一步一步跟调源码,下面是步骤 apache官网下载源码包,同时下载二进制包,用来连接启动的集群测试 https://zookeeper.apache.org/releases.html 解...

2020/05/27 14:56
162
windows下用mobaxterm代替mtputty

不知道有没有人跟我一样,无法忍受mtputty的tab+alt无效的情况,反正我是受够了,哈哈,改用mobaxterm,会好一些。 注意点: 1、保持连接:setting -> configuration -> ssh 2、session set...

2020/04/26 14:19
207
mysql5.7中文全文索引配置和使用

如果有全文索引的需求,大部分人会想到使用Elasticsearch,的确,它是一个很好的方案,当数据量并不多时,比如量级十万左右,需要检索的字段并不多,需求并没那么多,是否可以用mysql实现呢?...

2020/04/20 17:30
80
关于实时性与垃圾回收的思考

展望未来,垃圾回收会从语言中消失吗? 我觉得不会,虽然无GC的语言更快更省电效率更高,不影响吞吐量,但GC很难从语言中消失,除非机器比程序员贵很多,写着爽是对一门语言最高的肯定。科技...

2020/04/15 15:18
71
windows下idea执行maven compile中文乱码问题简单分析

网上有很多说出了解决办法的文章,却没有分析原因,解决方法是idea的settings VM Options中加入-Dfile.encoding=GBK或者GB2312,这样乱码就会是正确的汉字,BUT!!!,为什么呢? 原因分析 - ...

spring data jpa基于版本号与时间戳的乐观锁

基于版本号 创建表 CREATE TABLE test_optimistic_lock_version ( id bigint(20) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, version int(11) NOT NULL, PRIMARY KEY (id) ) EN...

2020/03/08 21:26
526
fastjson报NoSuchMethodError诡异

一个神奇的bug,2017年的一个工程A依赖fastjson1.2.7编译出了一个jar包,fastjson中有一个类SerializeConfig,这个类继承了一个put(Object k,Object v)的方法,所以编译出的jar包字节码里写的...

2020/01/04 23:32
1.9K
OPTIONS请求Cors,坑爹的配置

一个上传文件的请求,在请求之前,浏览器先发了一个OPTIONS请求,结果一直返回403forbidden,搞得都怀疑人生了,看tomcat的access日志,确实是tomcat处理的,但是把断点打到处理请求最前端的...

2019/12/11 21:15
134
基于zookeeper/curator的一个任务分片方案

假如现在有一个表,表里记录的是一些延迟消息,也就是在未来某时刻需要发送出去的消息,表的记录数不定,如果很多,那么需要多台机器来执行,如果很少,那么一两台就够了,这时候需要一个领导...

antlr4起飞

把那些隐隐约约的东西说清楚写下来,还是挺不容易的。 idea安装插件 安装完毕之后重启idea 新建maven工程,名字随便起,pom如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h...

2019/11/01 14:18
191
String split如何保留分隔符

String split方法很常用,比如"1,2,3,4,5".split(",")返回["1","2","3","4","5"],如果想保留分隔符呢?答案是利用正则表达式的环视功能。 (?=X) X, via zero-width positive lookahead (?!...

2019/11/01 11:04
1.5K
问题:Illegal access: this web application instance has been stopped already. Could not load 分析

问题描述 此问题出现在tomcat停止时,大概想想就知道,tomcat卸载了应用,但是现在有一些线程没有停止,继续执行代码,执行代码就需要加载类,加载类就要调用WebAppClassLoader,可是此时web...

2019/09/02 17:14
1.5K
jdbc&mysql中emoji和sql_mode问题详细分析

同事遇到的一个小问题,就是emoji保存出错,深究一下,发现还是有搞头的,记录一下。 问题描述 数据库版本:mysql5.6 数据库sql_mode设置为空 数据库表该字段字符集:utf8mb4 jdbc连接参数:...

2019/08/19 18:29
679

没有更多内容

加载失败,请刷新页面

返回顶部
顶部