博客目录导航,让我们一起学起来吧(持续更新)
spring boot源码解析
总览
曹工说Spring Boot源码(29)-- Spring 解决循环依赖为什么使用三级缓存,而不是二级缓存
曹工说Spring Boot源码(28)-- Spring的component-scan机制,让你自己来进行简单实现,怎么办
曹工说Spring Boot源码(27)-- Spring的component-scan,光是include-filter属性的各种配置方式,就够玩半天了
曹工说Spring Boot源码(26)-- 学习字节码也太难了,实在不能忍受了,写了个小小的字节码执行引擎
曹工说Spring Boot源码(25)-- Spring注解扫描的瑞士军刀,ASM + Java Instrumentation,顺便提提Jar包破解
曹工说Spring Boot源码(24)-- Spring注解扫描的瑞士军刀,asm技术实战(上)
曹工说Spring Boot源码(23)-- ASM又立功了,Spring原来是这么递归获取注解的元注解的
曹工说Spring Boot源码(22)-- 你说我Spring Aop依赖AspectJ,我依赖它什么了
曹工说Spring Boot源码(21)-- 为了让大家理解Spring Aop利器ProxyFactory,我已经拼了
曹工说Spring Boot源码(20)-- 码网恢恢,疏而不漏,如何记录Spring RedisTemplate每次操作日志
曹工说Spring Boot源码(19)-- Spring 带给我们的工具利器,创建代理不用愁(ProxyFactory)
曹工说Spring Boot源码(18)-- Spring AOP源码分析三部曲,终于快讲完了 (aop:config完整解析【下】)
曹工说Spring Boot源码(17)-- Spring从xml文件里到底得到了什么(aop:config完整解析【中】)
曹工说Spring Boot源码(16)-- Spring从xml文件里到底得到了什么(aop:config完整解析【上】)
曹工说Spring Boot源码(15)-- Spring从xml文件里到底得到了什么(context:load-time-weaver 完整解析)
曹工说Spring Boot源码(14)-- AspectJ的Load-Time-Weaving的两种实现方式细细讲解,以及怎么和Spring Instrumentation集成
曹工说Spring Boot源码(13)-- AspectJ的运行时织入(Load-Time-Weaving),基本内容是讲清楚了(附源码)
曹工说Spring Boot源码(12)-- Spring解析xml文件,到底从中得到了什么(context:component-scan完整解析)
曹工说Spring Boot源码(11)-- context:component-scan,你真的会用吗(这次来说说它的奇技淫巧)
曹工说Spring Boot源码(10)-- Spring解析xml文件,到底从中得到了什么(context:annotation-config 解析)
曹工说Spring Boot源码(9)-- Spring解析xml文件,到底从中得到了什么(context命名空间上)
曹工说Spring Boot源码(8)-- Spring解析xml文件,到底从中得到了什么(util命名空间)
曹工说Spring Boot源码(7)-- Spring解析xml文件,到底从中得到了什么(上)
曹工说Spring Boot源码(6)-- Spring怎么从xml文件里解析bean的
曹工说Spring Boot源码(5)-- 怎么从properties文件读取bean
曹工说Spring Boot源码(4)-- 我是怎么自定义ApplicationContext,从json文件读取bean definition的?
曹工说Spring Boot源码(3)-- 手动注册Bean Definition不比游戏好玩吗,我们来试一下
曹工说Spring Boot源码(2)-- Bean Definition到底是什么,咱们对着接口,逐个方法讲解
曹工说Spring Boot源码系列开讲了(1)-- Bean Definition到底是什么,附spring思维导图分享
redis源码解析
总览
曹工说Redis源码(8)--面试时,redis 内存淘汰总被问,但是总答不好
曹工说Redis源码(7)-- redis server 的周期执行任务,到底要做些啥
曹工说Redis源码(6)-- redis server 主循环大体流程解析
曹工说Redis源码(5)-- redis server 启动过程解析,以及EventLoop每次处理事件前的前置工作解析(下)
曹工说Redis源码(4)-- 通过redis server源码来理解 listen 函数中的 backlog 参数
曹工说Redis源码(3)-- redis server 启动过程完整解析(中)
曹工说Redis源码(2)-- redis server 启动过程解析及简单c语言基础知识补充
曹工说Redis源码(1)-- redis debug环境搭建,使用clion,达到和调试java一样的效果
JDK源码解析
总览
曹工说JDK源码(4)--抄了一小段ConcurrentHashMap的代码,我解决了部分场景下的Redis缓存雪崩问题
曹工说JDK源码(3)--ConcurrentHashMap,Hash算法优化、位运算揭秘
曹工说JDK源码(2)--ConcurrentHashMap的多线程扩容,说白了,就是分段取任务
曹工说JDK源码(1)--ConcurrentHashMap,扩容前大家同在一个哈希桶,为啥扩容后,你去新数组的高位,我只能去低位?
mini-dubbo
总览
曹工说mini-dubbo(2)--分析eureka client源码,想办法把我们的服务提供者注册到eureka server(上)
曹工说mini-dubbo(1)--为了实践动态代理,我写了个简单的rpc框架
Netty重器
总览
曹工杂谈:花了两天时间,写了一个netty实现的http客户端,支持同步转异步和连接池(1)--核心逻辑讲解
曹工说mini-dubbo(1)--为了实践动态代理,我写了个简单的rpc框架
曹工杂谈:Spring boot应用,自己动手用Netty替换底层Tomcat容器
netty学习--handler传递
Spring全家桶
总览
@Spring Boot程序员,我们一起给程序开个后门吧:让你在保留现场,服务不重启的情况下,执行我们的调试代码
使用Hystrix的插件机制,解决在使用线程隔离时,threadlocal的传递问题
曹工杂谈:我们的应用,启动就要去其他服务拉数据,那其他服务挂了,我们就起不来了?
rabbitmq template发送的消息中,Date类型字段比当前时间晚了8小时
Spring Boot应用使用Validation校验入参,现有注解不满足,我是怎么暴力扩展validation注解的
曹工杂谈:Spring boot应用,自己动手用Netty替换底层Tomcat容器
从spring源码汲取营养:模仿spring事件发布机制,解耦业务代码
曹工杂谈:为什么很少需要改Spring源码,因为扩展点太多了,说说Spring的后置处理器
fastjson自由:controller上指定active profile,让你想序列化什么字段就序列化什么字段
spring应用中多次读取http post方法中的流(附源码)
记录一次OOM排查经历(一)
spring boot 中active的profile会和标准配置合并吗
spring boot定制Jackson ObjectMapper,为什么不生效
spring cloud zipkin sleuth与spring boot aop结合后,启动慢
疑问:Spring 中构造器、init-method、@PostConstruct、afterPropertiesSet 孰先孰后,自动注入发生时间
Tomcat Servlet
总览
曹工说Tomcat4:利用 Digester 手撸一个轻量的 Spring IOC容器
曹工说Tomcat3:深入理解 Tomcat Digester
曹工说Tomcat2:自己撸一个简易Tomcat Digester
曹工说Tomcat1:从XML解析说起
【JRebel 作者出品--译文】Java class 热更新:关于对象,类,类加载器
不吹不黑,关于 Java 类加载器的这一点,市面上没有任何一本图书讲到
@Java web程序员,在保留现场,服务不重启的情况下,执行我们的调试代码(JSP 方式)
@Java Web 程序员,我们一起给程序开个后门吧:让你在保留现场,服务不重启的情况下,执行我们的调试代码
重写类加载器,实现简单的热替换
了不得,我可能发现了Jar 包冲突的秘密
还是Tomcat,关于类加载器的趣味实验
Linux中,Tomcat 怎么承载高并发(深入Tcp参数 backlog)
实战分析Tomcat的类加载器结构(使用Eclipse MAT验证)
服务器出现大量close_wait,我们来说说到底是怎么回事?(以tomcat为例)
Tomcat manager页面报403
持续集成环境--Tomcat热部署导致线程泄漏
tcp连接出现close_wait状态?可能是代码不够健壮
servlet filter中使用autowired无法注入
Java基础
总览
threadlocal 内存泄露之我见
曹工谈并发:Synchronized升级为重量级锁后,靠什么 API 来阻塞自己
曹工杂谈:我们的应用,启动就要去其他服务拉数据,那其他服务挂了,我们就起不来了?
就因为加了Lombok的@Accessors(chain = true),bean拷贝工具类不干活了
曹工杂谈:一道阿里面试题,两个线程交替打印奇偶数
jodatime 时间比较
DAO层框架
总览
Mybatis中多表关联时,怎么利用association优雅写resultMap来映射vo
懒要懒到底,能自动的就不要手动,Hibernate正向工程完成Oracle数据库到MySql数据库转换(含字段转换、注释)
Hibernate 查询sql结果行数、查询列表的几种方法
jpa中时间戳格式应该用哪种类型
mybatis generator如何定制JavaTypeResolver,使smallint类型的数据库字段在po中的类型为Integer?
tk mybatis通用mapper,复杂and or条件查询
Mybatis自动生成Xml文件,针对字段类型为text等会默认产生XXXXWithBlobs的方法问题
mybatis的generator中xml配置问题
mysql批量插入语句执行失败的话,是部分失败还是全部失败
mybatis配置多数据源(利用spring的AbstractRoutingDataSource)
mybatis批量插入
Java虚拟机
总览
曹工谈并发:Synchronized升级为重量级锁后,靠什么 API 来阻塞自己
曹工力荐:调试 jdk 中 rt.jar 包部分的源码(可自由增加注释,修改代码并debug)
曹工杂谈:用好verbose,Jar包冲突不再难
曹工杂谈:Java 类加载还会死锁?这是什么情况?
曹工杂谈:手把手带你读懂 JVM 的 gc 日志
源码编译OpenJdk 8,Netbeans调试Java原子类在JVM中的实现(Ubuntu 16.04)
编译你的第一个Java虚拟机--Centos 7 编译openJdk1.7源码
java保存动态代理生成的类的class文件
JVM学习--内存分配策略(持续更新)
JVM学习--开启应用的gc日志功能
JVM垃圾收集器组合--各种组合对应的虚拟机参数实践
java.lang.NoClassDefFoundError: Could not initialize class xxx 原因
JVM工具jinfo实践
【JVM译文】JVM问题定位前的准备工作有哪些
jvisualvm/jconsole jmx方式连接远程tomcat应用终于成功,附踩大坑记录!!(二:jmx方式)
jvisualvm连接远程应用终于成功,附踩大坑记录!!(一:jstatd方式)
jconsole连接远程Tomcat应用
查看运行中的Java其配置的堆大小
查看JVM使用的默认的垃圾收集器
jdk的server模式修改无效(关于client和server模式)
如何打开hprof文件
Linux运维
总览
曹工改bug:centos下,mongodb开机不能自启动,systemctl、rc.local都试了,还是不行,要不要放弃?
曹工杂谈--只用一个命令,centos系统里装了啥软件,啥时候装的,全都清清楚楚
Linux下使用docker 拉取 vsftpd 镜像搭建 Ftp 服务器,连接 Ftp 时遇到的错误(425 Failed to establish connection)
ftp服务器Serv-U 设置允许自动创建不存在的目录
centos7搭建nexus maven私服(二)
如何区分一个系统是redhat centos ubuntu fedora debian中的哪一种
Linux上的ftp服务器 vsftpd 之配置满天飞--设置匿名用户访问(不弹出用户名密码框)以及其他用户可正常上传
linux常用命令大全
阿里云服务器的一点小坑---端口不通问题,还是防火墙的锅
你可能不知道的shell、bash二三事(Centos 7)
jenkins配置findbugs失败---不要随便忽略警告!一个因为文件所有权引发的血案
windows server 2016远程桌面进去,英文系统修改语言
win7远程桌面 连接不上(用户名与全名不匹配的问题)
查看centos版本及32还是64位
centos7搭建nexus maven私服(二)
centos7搭建nexus maven私服
Web HTTP
总览
修改springfox-swagger源码,使example中时间格式默认为“yyyy-MM-dd HH:mm:ss”
spring mvc跨域(ajax post json)--filter方案
spring mvc跨域(post)--filter方案
maven管理的jsp应用如何添加servlet、jsp相关依赖(org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp)
chrome浏览器tab页内存占用变大,网站变慢为哪般?
相同域名不同端口的两个应用,cookie名字、路径都相同的情况下,后面cookie会覆盖前面cookie吗
百度echarts使用--y轴label数字太长难以全部显示
记录项目中用的laypage分页代码
记录下项目中常用到的JavaScript/JQuery代码一(大量实例)
layer ui插件显示tips时,修改字体颜色
flash上传文件,如何解决跨域问题
持续集成
总览
jenkins构建,拉取不到最新版本代码,报clock of the subversion server appears to be out of sync
jenkins实战(二):构建自由风格的maven项目
jenkins部署war包到远程服务器的tomcat
Jenkins踩坑系列--你试过linux主机ssh登录windows,启动java进程吗,来试试吧
阿里云服务器的一点小坑---端口不通问题,还是防火墙的锅
Jenkins权限管理之Matrix Authorization Strategy
jenkins与SonarQube集成
jenkins实战(一):war安装及插件安装
如何在jenkins的maven项目中,用mvn命令行指定findbugs的黑名单规则文件
jenkins创建pipeline
jenkins创建multibranch pipeline
工具Jar包
总览
java.lang.IllegalAccessError: tried to access method org.apache.poi.util.POILogger.log from class org.apache.poi.openxml4j.opc.ZipPackage
缓存银弹
总览
Redisson 加锁原理
redis-sentinel的理解实践
一款Redis客户端,可以作为Redis Desktop manager的有效补充或替代
监控redis服务器执行的命令--类似于tomcat的local-access.log
spring-data-redis的事务操作深度解析--原来客户端库还可以攒够了事务命令再发?
spring boot定制Jackson ObjectMapper,为什么不生效
spring data redis template GenericJackson2JsonRedisSerializer的使用
redis中的aof模式,产生的是增量数据,还是全量数据?
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
接入层技术
总览
疫情之下,远程办公之利用公司virtual--private--n+nginx tcp转发,使用windows远程桌面连接公司pc
nginx重启后,反向代理失败之问题排查记录
开发工具
总览
idea中将已有项目转变为git项目,并提交到git服务器上
曹工杂谈:Linux服务器上,Spring Boot 原地修改 jar 包配置文件/替换class文件,免去重复上传的麻烦
普通的maven项目,如何打成一个fat jar(包括了全部依赖jar包)?
idea实战技巧
intelj idea中除了Find Usage外的另一种查找级联调用的方法
intelj idea Database视图竟然还悄悄开进程,不能忍
maven 中的mirror详解
Maven传递依赖的坑:父pom中dependencyManagement版本优先级高于传递依赖版本
maven打war包的过程中,都用了哪些插件呢?
Jrebel不生效的原因和解决办法
intelj idea编译项目报错,Error:ajc: The method getDestHost() is undefined
maven中pom文件中name字段的作用
idea的spring boot项目,运行时不要显示在dashboard中
idea中使用svn,忽略本地修改的指定的文件
idea中,发现某个java语法在低版本中不支持时的解决办法
intelj idea中JRebel激活
intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)
日志框架
总览
曹工杂谈--使用mybatis的同学,进来看看怎么在日志打印完整sql吧,在数据库可执行那种
曹工改bug--这次,我遇到了一个难缠的栈溢出bug,还是日志相关的,真的难
墨菲定律:当你觉得一个地方可能有bug,那么这个地方就会有bug----顺带了解下Tomcat那少有人注意的localhost.log
面试题:应用中很多jar包,比如spring、mybatis、redis等等,各自用的日志系统各异,怎么用slf4j统一输出?(上)
软件工程
总览
程序员正确的提问方式(个人建议)
powerDesigner根据sql脚本来逆向生成pdm等模型
powerdesigner将name的名字赋给comment
双击表,powerdesigner pdm 没有 comment列(no comment)
power designer 连接mysql提示“connection test failed”
数据库
总览
一步一步搭建 Oracle Data Guard
Oracle问题解决记录
记录一份Oracle 正确的监听配置文件listener.ora与tnsnames.ora
Oracle导入
centos 7 mysql 开启binlog
centos 7 mysql启动失败--学会看错误日志
Oracle相关内容整理
Oracle中V$SESSION等各表的字段解释,Oracle官方解释
oracle索引优化
Oracle SQL Developer保持数据库连接的方法
生产环境mysql的参数设置不一样,好好的程序,又出错
mysql 索引学习--多条件等值查询,顺序不同也能应用联合索引啦
mysql中独立表空间与共享表空间之前如何切换
MySql查询正在进行中的事务
Mysql中autocommit的用法
mysql自带的example测试数据库导入Centos6.5
(Sqlyog或Navicat不友好处)SHOW ENGINE INNODB STATUS 结果为空或结果为=====================================
centos6.5中rpm包安装mysql5.7(初始化出错如何解决)
mysql批量插入语句执行失败的话,是部分失败还是全部失败
Mysql启动时提示:Another MySQL daemon already running with the same unix socket.
MySql中的varchar长度究竟是字节还是字符
网络编程
总览
Linux下,如何监控某个进程到底向哪个地址发起了网络调用
宽带爱折腾-将家里光猫转成桥接模式
Linux中,Tomcat 怎么承载高并发(深入Tcp参数 backlog)
服务器出现大量close_wait,我们来说说到底是怎么回事?(以tomcat为例)
linux下抓包学习--tcpdump的使用
tcp连接出现close_wait状态?可能是代码不够健壮
FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接
wireshark 表达式备忘录
wireshark和RawCap跟踪并解决中文乱码问题
tcp连接的状态变迁以及如何调整tcp连接中处于time_wait的时间
微服务
总览
实验:zk master宕机后,临时节点在新的master上是否存在,结果出人意料
消息中间件
总览
rabbitmq 强制删除集群相关信息,恢复原始状态
rabbitmq日志记录进出的每条消息