原创 Quartz動態設置併發數量

  quartz存在一個問題,當正在進行的任務已經達到了設置的個數,後續觸發的任務沒有線程可用,會導致系統宕機;   Quartz通過StdSchedulerFactory工廠創建調度器,initialize方法通過解析quartz.pro

原创 SpringBoot+jpa適配國產達夢數據庫

  依賴:spring-boot-starter-data-jpa等其他Spring依賴版本都是2.1.5 <dependency> <groupId>com.dameng</groupId>

原创 SseEmitter broken pipe

    使用SseEmitter進行日誌推送時,後臺出現 broken pipe 錯誤,排查發現是瀏覽器在訂閱打開SseEmitter請求連接時,會在一定時間內多次發起請求,但由於代碼中new SseEmitter後將實例保存起來,請求會查

原创 Mybatis的初始化和結合Spring Framework後初始化的源碼探究

  帶着下面的問題進行學習:   (1)Mybatis 框架或 Spring Framework 框架對數據層 Mapper 接口做了代理,那是做了 JDK 動態代理還是 CGLIB 代理?   (2)Mapper 接口使用和不使用 @Ma

原创 Mybatis一級緩存和結合Spring Framework後失效的源碼探究

  1.在下面的案例中,執行兩次查詢控制檯只會輸出一次 SQL 查詢: mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration

原创 Proxy.newProxyInstance源碼探究

 JDK動態代理案例實現:實現 InvocationHandler 接口重寫 invoke 方法,其中包含一個對象變量和提供一個包含對象的構造方法; public class MyInvocationHandler implements

原创 Java代理簡述 Spring(11) - Introductions進行類擴展方法 Spring筆記(3) - SpringAOP基礎詳解和源碼探究

  1.什麼是代理?   對類或對象(目標對象)進行增強功能,最終形成一個新的代理對象,(Spring Framework中)當應用調用該對象(目標對象)的方法時,實際調用的是代理對象增強後的方法,比如對功能方法login實現日誌記錄,可以

原创 Spring(11) - Introductions進行類擴展方法 Spring筆記(3) - SpringAOP基礎詳解和源碼探究 Spring筆記(3) - SpringAOP基礎詳解和源碼探究

  Introductions(引用),在 Aspect 中稱爲類型間的聲明,使切面能夠聲明被通知的對象(攔截的對象)實現給定的接口,並提供該接口的實現。   簡單點說可以將一個類的實現方法複製到未實現的類中,動態的擴展類沒有的方法。  

原创 自己挖的坑自己填--jxl進行Excel下載堆內存溢出問題

  今天在進行使用 jxl 進行 Excel 下載時,由於數據量大(4萬多條接近5萬條數據的下載),數據結構過於負責,存在大量大對象(雖然在對象每次用完都設置爲null,但還是存在內存溢出問題),加上本地電腦內存不大(只有8G),導致下載數

原创 Mybatis日誌源碼探究 Spring筆記(10) - 日誌體系

一.項目搭建   1.pom.xml <dependencies> <dependency> <groupId>log4j</groupId> <artifactI

原创 自己挖的坑自己填--Mybatis mapper文件if標籤中number類型及String類型的坑

  1.現象描述   (1)使用 Mybatis 在進行數據更新時,大部分時候update語句都需要通過動態SQL進行拼接。在其中,if標籤中經常會有 xxx !='' 這種判斷,若 number 類型的字段上傳遞的值爲 0, 執行更新時會

原创 Spring筆記(10) - 日誌體系 logback的使用和logback.xml詳解

一、概況   在項目開發當中,日誌對於我們開發或運維人員來說,是一個必不可少的工具。在線下我們可以通過 debug 來查找排除問題,但對於線上系統來說,我們只能通過日誌分析來查找問題,我們可以通過日誌打印來獲取我們需要的信息來判斷、分析系統

原创 Spring筆記(9) - IOC實現方式詳解

  IOC概念    控制反轉(Inversion of Control,IOC),是面向對象編程中的一種設計原則,它建議將不需要的職責移出類,讓類專注於核心職責,從而提供鬆散耦合,提高優化軟件程序設計。它把傳統上由程序代碼直接操控的對象的

原创 Spring筆記(8) - @EventListener註解探究 Spring的BeanFactoryPostProcessor探究

  在上文中講了Spring的事件監聽機制,流程是:定義事件、監聽器,發佈事件,控制檯輸出監聽到的事件內容。   在上文的擴展中 使用 @EventListener 註解來自定義監聽器,監聽指定的事件,比如下面的案例: @Componen

原创 Spring筆記(7) - Spring的事件和監聽機制

一.背景   事件機制作爲一種編程機制,在很多開發語言中都提供了支持,同時許多開源框架的設計中都使用了事件機制,比如SpringFramework。   在 Java 語言中,Java 的事件機制參與者有3種角色:     1.Event