博客目錄導(dǎo)航,讓我們一起學(xué)起來吧(持續(xù)更新)
spring boot源碼解析
總覽
曹工說Spring Boot源碼(29)-- Spring 解決循環(huán)依賴為什么使用三級緩存,而不是二級緩存
曹工說Spring Boot源碼(28)-- Spring的component-scan機制,讓你自己來進行簡單實現(xiàn),怎么辦
曹工說Spring Boot源碼(27)-- Spring的component-scan,光是include-filter屬性的各種配置方式,就夠玩半天了
曹工說Spring Boot源碼(26)-- 學(xué)習(xí)字節(jié)碼也太難了,實在不能忍受了,寫了個小小的字節(jié)碼執(zhí)行引擎
曹工說Spring Boot源碼(25)-- Spring注解掃描的瑞士軍刀,ASM + Java Instrumentation,順便提提Jar包破解
曹工說Spring Boot源碼(24)-- Spring注解掃描的瑞士軍刀,asm技術(shù)實戰(zhàn)(上)
曹工說Spring Boot源碼(23)-- ASM又立功了,Spring原來是這么遞歸獲取注解的元注解的
曹工說Spring Boot源碼(22)-- 你說我Spring Aop依賴AspectJ,我依賴它什么了
曹工說Spring Boot源碼(21)-- 為了讓大家理解Spring Aop利器ProxyFactory,我已經(jīng)拼了
曹工說Spring Boot源碼(20)-- 碼網(wǎng)恢恢,疏而不漏,如何記錄Spring RedisTemplate每次操作日志
曹工說Spring Boot源碼(19)-- Spring 帶給我們的工具利器,創(chuàng)建代理不用愁(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的兩種實現(xiàn)方式細細講解,以及怎么和Spring Instrumentation集成
曹工說Spring Boot源碼(13)-- AspectJ的運行時織入(Load-Time-Weaving),基本內(nèi)容是講清楚了(附源碼)
曹工說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思維導(dǎo)圖分享
redis源碼解析
總覽
曹工說Redis源碼(8)--面試時,redis 內(nèi)存淘汰總被問,但是總答不好
曹工說Redis源碼(7)-- redis server 的周期執(zhí)行任務(wù),到底要做些啥
曹工說Redis源碼(6)-- redis server 主循環(huán)大體流程解析
曹工說Redis源碼(5)-- redis server 啟動過程解析,以及EventLoop每次處理事件前的前置工作解析(下)
曹工說Redis源碼(4)-- 通過redis server源碼來理解 listen 函數(shù)中的 backlog 參數(shù)
曹工說Redis源碼(3)-- redis server 啟動過程完整解析(中)
曹工說Redis源碼(2)-- redis server 啟動過程解析及簡單c語言基礎(chǔ)知識補充
曹工說Redis源碼(1)-- redis debug環(huán)境搭建,使用clion,達到和調(diào)試java一樣的效果
JDK源碼解析
總覽
曹工說JDK源碼(4)--抄了一小段ConcurrentHashMap的代碼,我解決了部分場景下的Redis緩存雪崩問題
曹工說JDK源碼(3)--ConcurrentHashMap,Hash算法優(yōu)化、位運算揭秘
曹工說JDK源碼(2)--ConcurrentHashMap的多線程擴容,說白了,就是分段取任務(wù)
曹工說JDK源碼(1)--ConcurrentHashMap,擴容前大家同在一個哈希桶,為啥擴容后,你去新數(shù)組的高位,我只能去低位?
mini-dubbo
總覽
曹工說mini-dubbo(2)--分析eureka client源碼,想辦法把我們的服務(wù)提供者注冊到eureka server(上)
曹工說mini-dubbo(1)--為了實踐動態(tài)代理,我寫了個簡單的rpc框架
Netty重器
總覽
曹工雜談:花了兩天時間,寫了一個netty實現(xiàn)的http客戶端,支持同步轉(zhuǎn)異步和連接池(1)--核心邏輯講解
曹工說mini-dubbo(1)--為了實踐動態(tài)代理,我寫了個簡單的rpc框架
曹工雜談:Spring boot應(yīng)用,自己動手用Netty替換底層Tomcat容器
netty學(xué)習(xí)--handler傳遞
Spring全家桶
總覽
@Spring Boot程序員,我們一起給程序開個后門吧:讓你在保留現(xiàn)場,服務(wù)不重啟的情況下,執(zhí)行我們的調(diào)試代碼
使用Hystrix的插件機制,解決在使用線程隔離時,threadlocal的傳遞問題
曹工雜談:我們的應(yīng)用,啟動就要去其他服務(wù)拉數(shù)據(jù),那其他服務(wù)掛了,我們就起不來了?
rabbitmq template發(fā)送的消息中,Date類型字段比當(dāng)前時間晚了8小時
Spring Boot應(yīng)用使用Validation校驗入?yún)ⅲF(xiàn)有注解不滿足,我是怎么暴力擴展validation注解的
曹工雜談:Spring boot應(yīng)用,自己動手用Netty替換底層Tomcat容器
從spring源碼汲取營養(yǎng):模仿spring事件發(fā)布機制,解耦業(yè)務(wù)代碼
曹工雜談:為什么很少需要改Spring源碼,因為擴展點太多了,說說Spring的后置處理器
fastjson自由:controller上指定active profile,讓你想序列化什么字段就序列化什么字段
spring應(yīng)用中多次讀取http post方法中的流(附源碼)
記錄一次OOM排查經(jīng)歷(一)
spring boot 中active的profile會和標準配置合并嗎
spring boot定制Jackson ObjectMapper,為什么不生效
spring cloud zipkin sleuth與spring boot aop結(jié)合后,啟動慢
疑問:Spring 中構(gòu)造器、init-method、@PostConstruct、afterPropertiesSet 孰先孰后,自動注入發(fā)生時間
Tomcat Servlet
總覽
曹工說Tomcat4:利用 Digester 手擼一個輕量的 Spring IOC容器
曹工說Tomcat3:深入理解 Tomcat Digester
曹工說Tomcat2:自己擼一個簡易Tomcat Digester
曹工說Tomcat1:從XML解析說起
【JRebel 作者出品--譯文】Java class 熱更新:關(guān)于對象,類,類加載器
不吹不黑,關(guān)于 Java 類加載器的這一點,市面上沒有任何一本圖書講到
@Java web程序員,在保留現(xiàn)場,服務(wù)不重啟的情況下,執(zhí)行我們的調(diào)試代碼(JSP 方式)
@Java Web 程序員,我們一起給程序開個后門吧:讓你在保留現(xiàn)場,服務(wù)不重啟的情況下,執(zhí)行我們的調(diào)試代碼
重寫類加載器,實現(xiàn)簡單的熱替換
了不得,我可能發(fā)現(xiàn)了Jar 包沖突的秘密
還是Tomcat,關(guān)于類加載器的趣味實驗
Linux中,Tomcat 怎么承載高并發(fā)(深入Tcp參數(shù) backlog)
實戰(zhàn)分析Tomcat的類加載器結(jié)構(gòu)(使用Eclipse MAT驗證)
服務(wù)器出現(xiàn)大量close_wait,我們來說說到底是怎么回事?(以tomcat為例)
Tomcat manager頁面報403
持續(xù)集成環(huán)境--Tomcat熱部署導(dǎo)致線程泄漏
tcp連接出現(xiàn)close_wait狀態(tài)?可能是代碼不夠健壯
servlet filter中使用autowired無法注入
Java基礎(chǔ)
總覽
threadlocal 內(nèi)存泄露之我見
曹工談并發(fā):Synchronized升級為重量級鎖后,靠什么 API 來阻塞自己
曹工雜談:我們的應(yīng)用,啟動就要去其他服務(wù)拉數(shù)據(jù),那其他服務(wù)掛了,我們就起不來了?
就因為加了Lombok的@Accessors(chain = true),bean拷貝工具類不干活了
曹工雜談:一道阿里面試題,兩個線程交替打印奇偶數(shù)
jodatime 時間比較
DAO層框架
總覽
Mybatis中多表關(guān)聯(lián)時,怎么利用association優(yōu)雅寫resultMap來映射vo
懶要懶到底,能自動的就不要手動,Hibernate正向工程完成Oracle數(shù)據(jù)庫到MySql數(shù)據(jù)庫轉(zhuǎn)換(含字段轉(zhuǎn)換、注釋)
Hibernate 查詢sql結(jié)果行數(shù)、查詢列表的幾種方法
jpa中時間戳格式應(yīng)該用哪種類型
mybatis generator如何定制JavaTypeResolver,使smallint類型的數(shù)據(jù)庫字段在po中的類型為Integer?
tk mybatis通用mapper,復(fù)雜and or條件查詢
Mybatis自動生成Xml文件,針對字段類型為text等會默認產(chǎn)生XXXXWithBlobs的方法問題
mybatis的generator中xml配置問題
mysql批量插入語句執(zhí)行失敗的話,是部分失敗還是全部失敗
mybatis配置多數(shù)據(jù)源(利用spring的AbstractRoutingDataSource)
mybatis批量插入
Java虛擬機
總覽
曹工談并發(fā):Synchronized升級為重量級鎖后,靠什么 API 來阻塞自己
曹工力薦:調(diào)試 jdk 中 rt.jar 包部分的源碼(可自由增加注釋,修改代碼并debug)
曹工雜談:用好verbose,Jar包沖突不再難
曹工雜談:Java 類加載還會死鎖?這是什么情況?
曹工雜談:手把手帶你讀懂 JVM 的 gc 日志
源碼編譯OpenJdk 8,Netbeans調(diào)試Java原子類在JVM中的實現(xiàn)(Ubuntu 16.04)
編譯你的第一個Java虛擬機--Centos 7 編譯openJdk1.7源碼
java保存動態(tài)代理生成的類的class文件
JVM學(xué)習(xí)--內(nèi)存分配策略(持續(xù)更新)
JVM學(xué)習(xí)--開啟應(yīng)用的gc日志功能
JVM垃圾收集器組合--各種組合對應(yīng)的虛擬機參數(shù)實踐
java.lang.NoClassDefFoundError: Could not initialize class xxx 原因
JVM工具jinfo實踐
【JVM譯文】JVM問題定位前的準備工作有哪些
jvisualvm/jconsole jmx方式連接遠程tomcat應(yīng)用終于成功,附踩大坑記錄!!(二:jmx方式)
jvisualvm連接遠程應(yīng)用終于成功,附踩大坑記錄!!(一:jstatd方式)
jconsole連接遠程Tomcat應(yīng)用
查看運行中的Java其配置的堆大小
查看JVM使用的默認的垃圾收集器
jdk的server模式修改無效(關(guān)于client和server模式)
如何打開hprof文件
Linux運維
總覽
曹工改bug:centos下,mongodb開機不能自啟動,systemctl、rc.local都試了,還是不行,要不要放棄?
曹工雜談--只用一個命令,centos系統(tǒng)里裝了啥軟件,啥時候裝的,全都清清楚楚
Linux下使用docker 拉取 vsftpd 鏡像搭建 Ftp 服務(wù)器,連接 Ftp 時遇到的錯誤(425 Failed to establish connection)
ftp服務(wù)器Serv-U 設(shè)置允許自動創(chuàng)建不存在的目錄
centos7搭建nexus maven私服(二)
如何區(qū)分一個系統(tǒng)是redhat centos ubuntu fedora debian中的哪一種
Linux上的ftp服務(wù)器 vsftpd 之配置滿天飛--設(shè)置匿名用戶訪問(不彈出用戶名密碼框)以及其他用戶可正常上傳
linux常用命令大全
阿里云服務(wù)器的一點小坑---端口不通問題,還是防火墻的鍋
你可能不知道的shell、bash二三事(Centos 7)
jenkins配置findbugs失敗---不要隨便忽略警告!一個因為文件所有權(quán)引發(fā)的血案
windows server 2016遠程桌面進去,英文系統(tǒng)修改語言
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應(yīng)用如何添加servlet、jsp相關(guān)依賴(org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp)
chrome瀏覽器tab頁內(nèi)存占用變大,網(wǎng)站變慢為哪般?
相同域名不同端口的兩個應(yīng)用,cookie名字、路徑都相同的情況下,后面cookie會覆蓋前面cookie嗎
百度echarts使用--y軸label數(shù)字太長難以全部顯示
記錄項目中用的laypage分頁代碼
記錄下項目中常用到的JavaScript/JQuery代碼一(大量實例)
layer ui插件顯示tips時,修改字體顏色
flash上傳文件,如何解決跨域問題
持續(xù)集成
總覽
jenkins構(gòu)建,拉取不到最新版本代碼,報clock of the subversion server appears to be out of sync
jenkins實戰(zhàn)(二):構(gòu)建自由風(fēng)格的maven項目
jenkins部署war包到遠程服務(wù)器的tomcat
Jenkins踩坑系列--你試過linux主機ssh登錄windows,啟動java進程嗎,來試試吧
阿里云服務(wù)器的一點小坑---端口不通問題,還是防火墻的鍋
Jenkins權(quán)限管理之Matrix Authorization Strategy
jenkins與SonarQube集成
jenkins實戰(zhàn)(一):war安裝及插件安裝
如何在jenkins的maven項目中,用mvn命令行指定findbugs的黑名單規(guī)則文件
jenkins創(chuàng)建pipeline
jenkins創(chuàng)建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的有效補充或替代
監(jiān)控redis服務(wù)器執(zhí)行的命令--類似于tomcat的local-access.log
spring-data-redis的事務(wù)操作深度解析--原來客戶端庫還可以攢夠了事務(wù)命令再發(fā)?
spring boot定制Jackson ObjectMapper,為什么不生效
spring data redis template GenericJackson2JsonRedisSerializer的使用
redis中的aof模式,產(chǎn)生的是增量數(shù)據(jù),還是全量數(shù)據(jù)?
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
接入層技術(shù)
總覽
疫情之下,遠程辦公之利用公司virtual--private--n+nginx tcp轉(zhuǎn)發(fā),使用windows遠程桌面連接公司pc
nginx重啟后,反向代理失敗之問題排查記錄
開發(fā)工具
總覽
idea中將已有項目轉(zhuǎn)變?yōu)間it項目,并提交到git服務(wù)器上
曹工雜談:Linux服務(wù)器上,Spring Boot 原地修改 jar 包配置文件/替換class文件,免去重復(fù)上傳的麻煩
普通的maven項目,如何打成一個fat jar(包括了全部依賴jar包)?
idea實戰(zhàn)技巧
intelj idea中除了Find Usage外的另一種查找級聯(lián)調(diào)用的方法
intelj idea Database視圖竟然還悄悄開進程,不能忍
maven 中的mirror詳解
Maven傳遞依賴的坑:父pom中dependencyManagement版本優(yōu)先級高于傳遞依賴版本
maven打war包的過程中,都用了哪些插件呢?
Jrebel不生效的原因和解決辦法
intelj idea編譯項目報錯,Error:ajc: The method getDestHost() is undefined
maven中pom文件中name字段的作用
idea的spring boot項目,運行時不要顯示在dashboard中
idea中使用svn,忽略本地修改的指定的文件
idea中,發(fā)現(xiàn)某個java語法在低版本中不支持時的解決辦法
intelj idea中JRebel激活
intelj idea 創(chuàng)建聚合項目(典型web項目,包括子項目util、dao、service)
日志框架
總覽
曹工雜談--使用mybatis的同學(xué),進來看看怎么在日志打印完整sql吧,在數(shù)據(jù)庫可執(zhí)行那種
曹工改bug--這次,我遇到了一個難纏的棧溢出bug,還是日志相關(guān)的,真的難
墨菲定律:當(dāng)你覺得一個地方可能有bug,那么這個地方就會有bug----順帶了解下Tomcat那少有人注意的localhost.log
面試題:應(yīng)用中很多jar包,比如spring、mybatis、redis等等,各自用的日志系統(tǒng)各異,怎么用slf4j統(tǒng)一輸出?(上)
軟件工程
總覽
程序員正確的提問方式(個人建議)
powerDesigner根據(jù)sql腳本來逆向生成pdm等模型
powerdesigner將name的名字賦給comment
雙擊表,powerdesigner pdm 沒有 comment列(no comment)
power designer 連接mysql提示“connection test failed”
數(shù)據(jù)庫
總覽
一步一步搭建 Oracle Data Guard
Oracle問題解決記錄
記錄一份Oracle 正確的監(jiān)聽配置文件listener.ora與tnsnames.ora
Oracle導(dǎo)入
centos 7 mysql 開啟binlog
centos 7 mysql啟動失敗--學(xué)會看錯誤日志
Oracle相關(guān)內(nèi)容整理
Oracle中V$SESSION等各表的字段解釋,Oracle官方解釋
oracle索引優(yōu)化
Oracle SQL Developer保持數(shù)據(jù)庫連接的方法
生產(chǎn)環(huán)境mysql的參數(shù)設(shè)置不一樣,好好的程序,又出錯
mysql 索引學(xué)習(xí)--多條件等值查詢,順序不同也能應(yīng)用聯(lián)合索引啦
mysql中獨立表空間與共享表空間之前如何切換
MySql查詢正在進行中的事務(wù)
Mysql中autocommit的用法
mysql自帶的example測試數(shù)據(jù)庫導(dǎo)入Centos6.5
(Sqlyog或Navicat不友好處)SHOW ENGINE INNODB STATUS 結(jié)果為空或結(jié)果為=====================================
centos6.5中rpm包安裝mysql5.7(初始化出錯如何解決)
mysql批量插入語句執(zhí)行失敗的話,是部分失敗還是全部失敗
Mysql啟動時提示:Another MySQL daemon already running with the same unix socket.
MySql中的varchar長度究竟是字節(jié)還是字符
網(wǎng)絡(luò)編程
總覽
Linux下,如何監(jiān)控某個進程到底向哪個地址發(fā)起了網(wǎng)絡(luò)調(diào)用
寬帶愛折騰-將家里光貓轉(zhuǎn)成橋接模式
Linux中,Tomcat 怎么承載高并發(fā)(深入Tcp參數(shù) backlog)
服務(wù)器出現(xiàn)大量close_wait,我們來說說到底是怎么回事?(以tomcat為例)
linux下抓包學(xué)習(xí)--tcpdump的使用
tcp連接出現(xiàn)close_wait狀態(tài)?可能是代碼不夠健壯
FTP協(xié)議的粗淺學(xué)習(xí)--利用wireshark抓包分析相關(guān)tcp連接
wireshark 表達式備忘錄
wireshark和RawCap跟蹤并解決中文亂碼問題
tcp連接的狀態(tài)變遷以及如何調(diào)整tcp連接中處于time_wait的時間
微服務(wù)
總覽
實驗:zk master宕機后,臨時節(jié)點在新的master上是否存在,結(jié)果出人意料
消息中間件
總覽
rabbitmq 強制刪除集群相關(guān)信息,恢復(fù)原始狀態(tài)
rabbitmq日志記錄進出的每條消息

浙公網(wǎng)安備 33010602011771號