原创 Spring 註解編程之 AnnotationMetadata

在上篇文章 Spring 註解編程之模式註解 中我們講到 Spring 模式註解底層原理,依靠 AnnotationMetadata 接口判斷是否存在指定元註解。 這篇文章我們主要深入 AnnotationMetadata,瞭解其底層原理

原创 Spring 註解編程之模式註解

上篇文章研究 Spring XML Schema 擴展進制,這段時候一直研究 Spring 註解編程的原理。原本以爲有了之前研究基礎,可以很快理解註解編程原理。沒想到這個過程非常困難,註解編程源碼難度是 XML 擴展好幾倍。o(╥﹏╥)o。

原创 緣起 Dubbo ,講講 Spring XML Schema 擴展機制

背景 在 Dubbo 中,可以使用 XML 配置相關信息,也可以用來引入服務或者導出服務。配置完成,啓動工程,Spring 會讀取配置文件,生成注入 相關 Bean。那 Dubbo 如何實現自定義 XML 被 Spring 加載讀取? Sp

原创 從源碼解析 Spring JDBC 異常抽象

初入學習 JDBC 操作數據庫,想必大家都寫過下面的代碼: 數據庫爲:H2 如果需要處理特定 SQL 異常,比如 SQL 語句錯誤,這個時候我們應該怎麼辦? 查看 SQLException 源碼,我們可以發現兩個重要的方法。 SQLExc

原创 Dubbo 2.7.1 踩坑記

Dubbo 2.7 版本增加新特性,新系統開始使用 Dubbo 2.7.1 嚐鮮新功能。使用過程中不慎踩到這個版本的 Bug。 系統架構 Spring Boot 2.14-Release + Dubbo 2.7.1 現象 Dubbo 服務者

原创 爲什麼選擇 Intellij IDEA 作爲日常開發工具

作爲一個從事 Java 開發的程序員,每天離不開編輯器的幫助。還記得剛開始學習 Java 編程的時候,使用 Eclipse 作爲日常開發工具。後來工作以後,需要使用 Intellij IDEA,剛開始其實並不想怎麼用。畢竟 Eclipse

原创 一次慢查詢暴露的隱蔽的問題

Photo by Iga Palacz on Unsplash 最近解決了一個生產 SQL 慢查詢的問題,排查問題之後發現一些比較隱匿且容易忽略的問題。 業務背景介紹 最近業務上需要上線一個預警功能,需要查出一段時間內交易,求出當前交易成

原创 聊聊我的 Java 自學之路

1. 聊聊我的 Java 自學之路 最近經常在知乎收到類似『沒基礎,java 如何自學』、『怎麼才能掌握編程』等等問題,再加上發現高中同學也在自學。有感而發,講講我的自學之路。 1.1. 大學 高考沒正常發揮,考入一所二流的學校,當時分數

原创 從源碼學習設計模式之模板方法

Photo by Tomáš Malík on Unsplash 什麼是模板方法模式?摘錄 wiki 的介紹。 模板方法模式定義了一個算法的步驟,並允許子類別爲一個或多個步驟提供其實踐方式。讓子類別在不改變算法架構的情況下,重新定義算法中的

原创 聊聊分佈式事務

這次使用分佈式事務框架過程中了學習了一些分佈式事務知識,所以本文我們就來聊聊分佈式事務那些事。首先我們先回顧下什麼是事務。 事務 什麼是事務?這個作爲後端開發,日常開發中只要與數據庫有交互,肯定就會使用過事務。現在摘抄一段wiki的解釋,解

原创 數據庫相關異常分析

起因 最近一段時間,生產系統持續碰到一些數據庫異常,導致 sql 執行失敗。 應用環境 Java 1.7 + Mysql 5.6 + spring + ibatis 問題排查 將各種失敗的異常記錄了一下,碰到最多下面幾種異常。 java.

原创 小心遞歸中內存泄漏

小心遞歸中內存泄漏 前段時間由於業務需要,需要從數據庫中查詢出來所有滿足條件的數據,然後導入到文件中。於是隨便寫了個程序,查詢出所有滿足條件然後再寫入文件。但是實際上線後卻發現,程序剛開始運行馬上看到部分數據寫入到文件,但是後面運行越來越慢