原创 線程池的使用和工作原理

開篇 本文將從以下三個方面介紹線程池 線程池的七個參數 線程的使用 自定義一個線程池 一個任務提交會經歷哪些步驟 JDK線程池是如何保證核心線程一直存活的 線程池的七個參數 java源碼 /** * Creates

原创 自定義阻塞隊列

自定義阻塞隊列 這個自定義阻塞隊列基本就是jdk阻塞隊列的實現 public class MyBlockQueue<E> { /** * 鎖 保證併發安全 */ private Reentran

原创 一次由於SecureRandom使用不當引起的線程阻塞

問題起因 一個對外提供的接口,中間需要調用第三方接口,涉及到三方機密問題,其中使用到了安全隨機數 之前的寫法如下 public static String randomCode() { Random r = new Ran

原创 如何在springboot中註冊severletFilter

問題起源 之前好好的項目突然之間訪問不了,在postman測試所有接口都顯示AES解密失敗,推測可能是請求接口時加入瞭解密,查看配文件發現多了一個配置 xxx.cipher.enabled=true 註釋寫的是啓用加密 如是就去探

原创 docker常用命令

一、CentOS7常用命令 https://blog.csdn.net/qq_34916059/article/details/79552397 https://blog.csdn.net/qq_40087415/article/

原创 ReentrantLock的實現原理

ReentrantLock的加鎖時序圖 ReentrantLock類圖 分析的幾個問題 ReentrantLock是如何實現加鎖的 當鎖被其他線程佔用時當前線程是如何處理的 帶着這兩個問題分析一下 ReentrantLoc

原创 責任鏈設計模式

責任鏈設計模式概念場景利用責任鏈設計模式實現責任鏈設計模式優化結束語 概念 責任鏈(chain of responsibility)模式很像異常的捕獲和處理,當一個問題發生的時候,當前對象看一下自己是否能夠處理,不能的話將問題拋給

原创 一段代碼查看線程狀態

DEMO package thread; import java.util.concurrent.TimeUnit; public class ThreadStatusDemo { public static void

原创 ThreadLocal

ThreadLocal是什麼 ThreadLocal,很多地方叫做線程本地變量,也有些地方叫做線程本地存儲,其實意思差不多。可能很多朋友都知道ThreadLocal爲變量在每個線程中都創建了一個副本,那麼每個線程可以訪問自己內部的副本

原创 redis入門學習(比較全面)

一、 安裝 在centOs下安裝redis 首先需要安裝gcc依賴用於編譯解壓後的redis 就把gcc當成c語言編譯器, g++當成c++語言編譯器用就是了 yum -y install gcc gcc-c++ autoconf p

原创 Spring註解式開發(六):五分鐘搞定Spring AOP開發

AOP功能 AOP(Aspect Oriented Programming):面向切面編程 指在程序運行期間動態的將某段代碼切入到指定方法指定位置運行的編程方式 進行aop開發時首先要導入spring aop的依賴 <dependen

原创 Spring註解式開發(四):Spring底層對BeanPostProcessor的應用

引言 上篇文章介紹了BeanPostProcessor的原理,這周加了一週的班,週末靜下心來繼續spring註解式開發的學習。 Spring提供了哪些BeanPostProcessor spring爲我們提供了很多BeanPostPr

原创 Spring註解式開發(五):屬性賦值和自動裝配

引言 上篇文章介紹 的是spring底層對BeanPostProcessor的使用,今天介紹一下bean屬性的賦值和自動裝配 @Value註解 @Value註解 可以寫直接的數值 也可以使用SPEL表達式#{ } $ {}去取配置文件

原创 Spring註解式開發(一):組件註冊

引言 最近打算利用業餘時間豐富一下自己,學習一下Spring的註解式開發,個人覺得Spring註解式開發對於Springboot的理解有些幫助,之前是通過手寫筆記的方式記錄學習的內容,現在想通過博客的方式記錄一下,希望有不正之處大家可

原创 Spring註解式開發(三):BeanPostProcessor的工作原理

BeanPostProcessor的工作原理 本次通過debug的方式追蹤BeanPostProcessor的工作原理 容器啓動時的方法調用棧 首先進入 AnnotationConfigApplicationContext方法,也就