1. 程式人生 > 其它 >Java執行緒數過多解決之路——利用Arthas解決Jenkins執行緒數飆升問題

Java執行緒數過多解決之路——利用Arthas解決Jenkins執行緒數飆升問題

1、IOC

2、AOP(Aspct Oriented Programming)面向切面程式設計

面向切面程式設計:基於OOP基礎之上新的程式設計思想;

指在程式執行期間,將某段程式碼動態的切入指定方法指定位置進行執行的這種程式設計方式

場景:計算器執行計算方法的時候進行日誌的記錄;

加日誌記錄:

  1. 直接編寫在方法內部;不推薦,修改維護麻煩;
    1. 日誌記錄:系統的輔助功能;
    2. 業務邏輯:(核心功能)
    3. 耦合;
  2. 希望的是:
    1. 業務邏輯:(核心功能);日誌模組;在核心功能執行期間,自己動態的加上
    2. 執行的時候,日誌功能可以加上;
    3. 可以使用動態代理來將日誌程式碼動態的在目標方法執行前後先進行執行。(動態代理存在的問題,寫起來麻煩,每個都需要實現代理類)
  3. Spring實現了AOP功能;底層就是動態代理;
    1. 可以利用Spring一句程式碼都不寫的去建立動態代理;
      1. 實現簡單,而且沒有強制要求目標物件必須實現介面;

AOP使用場景:

  1)AOP加日誌儲存到資料庫

  2)AOP做許可權驗證

  3)AOP做安全檢查

  4)AOP做事務控制