原创 Spring基礎組件

@Configuration 指定配置類 @Bean 一般針對導入第三方的類或包的組件,比如在其他包中定義的Person類需要在我們的容器中使用 @ComponentScan 掃描Bean,一般針對我們自己使用的類,useDefa

原创 線程併發工具類(Fork-Join,CountDownLatch,CyclicBarrier,Semaphore,Exchange)

文章目錄Fork-JoinCountDownLatchCyclicBarrierSemaphoreExchange Fork-Join 分而治之:規模爲N的問題,N<閾值,直接解決,N>閾值,將N分解爲K個小規模子問題,子問題互相

原创 @Async分析exposeProxy=true不生效原因

每篇一句 技術的發展總會實在掌聲中,伴隨着噓聲中前進。因此,需要有一顆擁抱變革的心態~ 前言 本文標題包含有'靚麗'的字眼:Spring框架bug。相信有的小夥伴心裏小九九就會說了:又是一篇標題黨文章。 鑑於此,此處可以很負責

原创 Spring Aop之Target Source詳解

在Spring代理目標bean的時候,其並不是直接創建一個目標bean的對象實例的,而是通過一個TargetSource類型的對象將目標bean進行封裝,Spring Aop獲取目標對象始終是通過TargetSource.getT

原创 使用@Async異步註解導致該Bean在循環依賴時啓動報BeanCurrentlyInCreationException異常的根本原因分析

每篇一句 面試造飛機,工作擰螺絲。工作中你只需要知道那些調用命令怎麼使用就行,但背後的邏輯你有必要去了解 前言 今天在自己工程中使用@Async的時候,碰到了一個問題:Spring循環依賴(circular reference

原创 JDK命令行工具的監控

JVM參數類型 標準參數 -help -server -client -version -showversion -cp -classpath X參數 -Xint 解釋執行 -Xcomp 第一次執行使用就編譯成本地代碼 (

原创 解決/home/travis/.travis/functions: ./mvnw: Permission denied

報錯/home/travis/.travis/functions: line 320: ./mvnw: Permission denied The command "eval ./mvnw install -DskipTests=

原创 Tomact原理與架構

Tomact結構圖 Server:指的就是整個 Tomcat 服 務器,包含多組服務,負責管理和 啓動各個 Service,同時監聽 8005 端口發過來的 shutdown 命令,用 於關閉整個容器 ; Service:To

原创 Maven實現原理

Maven 是每一位Java工程師每天都會接觸的工具, 但據我所知其實很多人對Maven理解的並不深, 只把它當做一個依賴管理工具(下載依賴、打包), Maven很多核心的功能反而沒用上. 最近重讀 Maven實戰, 雖然這本書年

原创 Web API設計

什麼是Web API 使用HTTP協議通過網絡調用的API,是軟件組織的外部接口。通過訪問URI可以與服務器完成信息交互,獲取存放在服務器的數據信息 WEB API的重要性不斷提升,開發人員需要設計Web API的機會也越來越多,

原创 MySQL存儲引擎

查看MySQL已提供的存儲引擎 mysql> show engines; 查看MySQL當前默認存儲引擎 mysql> show variables like '%storge_engine%'; MyISAM MySQL5.

原创 MySQL索引和執行計劃

索引 索引(Index)是幫助MySQL高效獲取數據的數據結構。可以得到索引的本質:索引是數據結構 右側是數據表,一共有兩列七條記錄,最左邊的是數據記錄的物理地址 索引分類 普通索引:即一個索引只包含單個列,一個表可以有多個單

原创 MySQL慢查詢

慢查詢 慢查詢日誌,顧名思義,就是查詢慢的日誌,是指mysql記錄所有執行超過long_query_time參數設定的時間閾值的SQL語句的日誌。該日誌能爲SQL語句的優化帶來很好的幫助。默認情況下,慢查詢日誌是關閉的,要使用慢查

原创 MySQL邏輯架構

連接層 Mysql啓動,等待客戶端連接,每一個客戶端連接請求,服務器都會新建一個線程處理(若是線程池,則分配一個空的線程),每個線程獨立,擁有各自的內存處理空間,顯然,若兩個線程修改同一塊內存是會引發數據同步問題 SQL處理層

原创 MySQl優化

策略1.儘量全值匹配 EXPLAIN SELECT * FROM staffs WHERE NAME = 'July'; EXPLAIN SELECT * FROM staffs WHERE NAME = 'July' AND a