原创 SLF4J(六) - MDC/MDCAdapter是什麼?

是什麼? MDC(Mapped Diagnostic Context,映射調試上下文)是日誌系統提供的一種方便在多線程條件下記錄日誌的功能 有什麼用? 一個常用的場景就是Web服務器中給每個請求都給一個獨特的請求id,在合理配置日

原创 SLF4J(七) - 總結

經過這段時間的學習,簡單總結一下。 最核心的接口:SLF4JServiceProvider,日誌實現類通過實現這個接口來綁定核心功能的實現。 SLF4J中有三個核心接口: ILoggerFactory: 獲取logger

原创 Nodejs後端服務配置profile

profile是什麼? 在應用開發中, 總會遇到開發/測試/預發佈/線上環境, 其環境不同, 其具體的配置項也有所不同, 不同環境的配置就可以理解爲是不同的profile. 如何快速的切換各個環境配置, 進行打包配置, 成了一個小

原创 JUC核心-AQS(AbstractQueuedSynchronizer)簡析

AQS是什麼? AQS 全稱是 AbstractQueuedSynchronizer, 它提供一種依賴於FIFO等待隊列的構建鎖和同步器的框架。 CAS是什麼? CAS(Compare And Swap),即比較並交

原创 IntelliJ IDEA使用技巧以及常見問題解決方案(mac)

技巧 Java代碼自動去除無用依賴: 方法:在Editor欄—>General—>Auto Import/java—>☑️Optimize imports on the fly(for current project) 效果:

原创 解決nodejs使用apidoc問題:Cannot read property 'Filter...' of undefined

apidoc是什麼? apidoc 是一個根據源代碼中api註解創建api文檔的工具,輕便易用。 問題背景 現象:nodejs中使用apidoc在控制檯報如下錯誤: require.min.js:19 TypeError: C

原创 Java Map、HashMap, ConcurrentHashMap全面總結

Map Map接口並不是繼承自Collection接口,這個要注意了 常見的Map實現類: HashMap ConcurrentHashMap LinkedHashMap TreeMap util包的關係圖,Map

原创 log4j2(四) - 日誌位置是怎麼獲取到的?有什麼影響?

日誌的位置信息包含哪些? %C or $class:類名 %F or %file:文件名 %L or %line:打印日誌的方法所在文件的行數 %M or %method:打印日誌的方法名 %l or %location:包含以

原创 Java synchronized 底層實現,原理,面試題總結

底層實現 synchronized底層實現 詳細參考:楊曉峯極客時間上的課程《Java核心技術面試精講》:第16講 | synchronized底層如何實現?什麼是鎖的升級、降級 synchronized 代碼塊是由一對兒 m

原创 log4j2(三) 如何通過類名獲取到logger呢?logger與loggerConfig是什麼關係?-源碼解析

文章目錄情景解析從例子說起從LoggerFactory獲取logger從LoggerContext中獲取logger創建Logger真正的主角LoggerConfig獲取LoggerConfig流程圖驗證小結 情景 之所以想寫這篇

原创 Log4J2(七) - 觀察者模式-配置/腳本熱更新是怎麼實現的?-源碼分析

文章目錄什麼情況下開啓配置/腳本熱更新?關鍵類與接口WatchManagerFileMonitorFileWatcher(接口)實現類0:ScriptManager實現類1:ConfiguratonFileWatcher小結 什麼

原创 SFL4J(一) - Java中那些剪不斷理還亂的日誌組件之SFL4J

情景 在Java依賴中經常看到各種日誌依賴,但搞不清他們之間的關係。 梳理 常見日誌組件分類 API類: Commons Logging SLF4J 實現類 JDK Logging Logback Log4J Log4J

原创 Log4J2源碼系列(八) -NullConfuguration是什麼?用來做什麼的呢?

沒有讀過源碼童鞋第一眼看到這個類肯定是一臉懵逼的,加上網上分析這個的類的文章基本上沒有,心中更生疑惑。 創建的時機 NullConfiguration是LoggerContext的一個靜態變量,在執行LoggerContext的構

原创 Log4J2(六) - 配置工廠ConfigurationFactory的初始化過程-源碼解析

作用 配置工廠ConfigurationFactory是用於加載用戶的配置文件的,配置文件是怎麼獲取的?這篇文章就是講的通過ConfigurationFactory去獲取配置文件的過程。 實例 ConfigurationFact

原创 Log4J2源碼系列(十一) - 從2.6版本影響到現在的bug, 使用JMX監控的可以看看

這個bug是我在看源碼的過程中發現的,已經發了jira給Log4J2的團隊. bug信息 背景:logger配置變化的時候,會通過LoggerContext的updateLogger方法更新,併發送一條propertyChang