摘要:前提 Lettuce是一个Redis的Java驱动包,初识她的时候是使用RedisTemplate的时候遇到点问题Debug到底层的一些源码,发现spring-data-redis的驱动包在某个版本之后替换为Lettuce。Lettuce翻译为生菜,没错,就是吃的那种生菜,所以它的Logo长这样: 阅读全文
posted @ 2019-09-28 09:33 throwable 阅读(23805) 评论(6) 推荐(14) 编辑
摘要:2019年 JUC线程池服务ExecutorService接口实现源码分析 Github Page:http://www.throwable.club/2019/07/27/java-concurrency-executor-service Coding Page:http://throwable. 阅读全文
posted @ 2019-07-29 23:39 throwable 阅读(801) 评论(0) 推荐(1) 编辑
摘要:前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。第三方传输(包括请求和响应)数据报文包括三个部分: 1、timestamp,long类型,时间戳。 2、data,String类型,实际的业务请求数据转化成的 阅读全文
posted @ 2018-08-14 00:41 throwable 阅读(14268) 评论(7) 推荐(2) 编辑
摘要:前提 这篇文章主要分析一下Introspector(内省,应该读xing第三声,没有找到很好的翻译,下文暂且这样称呼)的用法。Introspector是一个专门处理JavaBean的工具类,用来获取JavaBean里描述符号,常用的JavaBean的描述符号相关类有BeanInfo、Property 阅读全文
posted @ 2020-08-11 08:55 throwable 阅读(134) 评论(0) 推荐(0) 编辑
摘要:前提 Snowflake(雪花)是Twitter开源的高性能ID生成算法(服务)。 上图是Snowflake的Github仓库,master分支中的REAEMDE文件中提示:初始版本于2010年发布,基于Apache Thrift,早于Finagle(这里的Finagle是Twitter上用于RPC 阅读全文
posted @ 2020-08-10 09:08 throwable 阅读(266) 评论(0) 推荐(2) 编辑
摘要:前提 在忍耐了很久之后,忍不住爆发了,在掘金发了条沸点(下班时发的): 这是一个令人悲伤的故事,这条情感爆发的沸点好像被屏蔽了,另外小水渠(Canal意为水道、管道)上线一段时间,不出坑的时候风平浪静,一旦出坑令人想屎。重点吐槽几点: 目前最新的RELEASE版本为v1.1.4,发布于2019-9- 阅读全文
posted @ 2020-08-07 00:10 throwable 阅读(244) 评论(5) 推荐(1) 编辑
摘要:前提 最近有点懒散,没什么比较有深度的产出。刚好想重新研读一下JUC线程池的源码实现,在此之前先深入了解一下Java中的线程实现,包括线程的生命周期、状态切换以及线程的上下文切换等等。编写本文的时候,使用的JDK版本是11。 Java线程的实现 在JDK1.2之后,Java线程模型已经确定了基于操作 阅读全文
posted @ 2020-08-05 12:51 throwable 阅读(73) 评论(0) 推荐(0) 编辑
摘要:背景 最近有一个数据统计服务需要升级SpringBoot的版本,由1.5.x.RELEASE直接升级到2.3.0.RELEASE,考虑到没有用到SpringBoot的内建SPI,升级过程算是顺利。但是出于代码洁癖和版本洁癖,看到项目中依赖的MyBatis的版本是3.4.5,相比当时的最新版本3.5. 阅读全文
posted @ 2020-08-02 14:59 throwable 阅读(127) 评论(0) 推荐(1) 编辑
摘要:前提 并发编程大师Doug Lea在编写JUC(java.util.concurrent)包的时候引入了java.util.concurrent.locks.AbstractQueuedSynchronizer,其实是Abstract Queued Synchronizer,也就是"基于队列实现的抽 阅读全文
posted @ 2020-07-24 00:13 throwable 阅读(349) 评论(0) 推荐(1) 编辑
摘要:这是公众号《Throwable文摘》发布的第25篇原创文章,收录于专辑《SpringBoot2.x入门》。 前提 这篇文章是《SpringBoot2.x入门》专辑的第8篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8。 SpringBoot项目引入MyBatis 阅读全文
posted @ 2020-07-19 16:32 throwable 阅读(180) 评论(0) 推荐(1) 编辑
摘要:这是公众号《Throwable文摘》发布的第23篇原创文章,收录于专辑《SpringBoot2.x入门》。 前提 这篇文章是《SpringBoot2.x入门》专辑的第7篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8。 这篇文章会简单介绍jdbc模块也就是spr 阅读全文
posted @ 2020-07-16 22:42 throwable 阅读(227) 评论(0) 推荐(0) 编辑
摘要:这是公众号《Throwable文摘》发布的第22篇原创文章,暂时收录于专辑《架构与实战》。暂定下一篇发布的长文是《图文分析JUC同步器框架》,下一篇发布的短文是《SpringBoot2.x入门:引入jdbc模块与JdbcTemplate简单使用》。 前提 在日常使用SpringMVC进行开发的时候, 阅读全文
posted @ 2020-07-14 23:05 throwable 阅读(213) 评论(0) 推荐(3) 编辑
摘要:前提 这篇文章是《SpringBoot2.x入门》专辑的第6篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8。 这篇文章主要简单聊聊钩子接口CommandLineRunner和ApplicationRunner,下文有时候统称两者为Runner。 Runner的 阅读全文
posted @ 2020-07-14 00:23 throwable 阅读(214) 评论(0) 推荐(1) 编辑