原创 MyBatis自定義自定義動態SQL解析方式

引子 之前項目中一直使用的是JPA作爲ORM框架,最近,新加了一個子服務,使用的是 MyBatis 作爲ORM框架。既然用的是MyBatis,那就面免不了 循環迭代參數、if 動態SQL查詢等。 然而,MyBatis 的動態SQL要寫很多

原创 MySQL事務的特性與隔離級別

引子 最近準備學習一下MySQL相關的知識。學習知識最好的方式就是去看官方文檔。這裏,我將根據官方文檔的描述,總結一下MySQL事務的四大特性——ACID,以及MySQL數據庫提供的四種隔離級別。 本文主要是翻譯、整理自MySQL 8.0

原创 Java中的位運算

引子 在上一篇文章《計算機信息的表示與存儲》中,我詳細地總結了原碼、補碼等表示方式以及其計算。而這些的目的,就是爲了引出本文——位運算相關的知識。這裏,我將仔細講一講位運算相關的知識。 位運算基礎 在Java中,位運算操作分爲兩種:按位操

原创 JVM學習筆記(一):Java內存區域

引子 你所處的環境決定了你能力的上限——或者,你自己成爲上限。 最近又複習了一下JVM相關的知識,這裏,記錄下自己學習時總結的一些筆記,一來加深自己的記憶,二來希望能幫到將要面試的各位。 PS:本文總結自周志明大牛所著的《深入理解Java

原创 SpringBoot + MyBatis配置多數據源

引子 最近項目中,由於數據源更替,部分原來的需要通過REST API獲取的數據需要切換成 直接從數據庫中獲取,所以,需要給項目配置多數據源。在查閱了一些文檔後,這裏記錄下自己親身實踐後的結果,希望能幫到大家。 配置項 下面是在 appli

原创 自定義註解支持SPEL表達式

引子 我現在負責項目中,數據計算量比較大,有強烈的緩存需求。但是無奈,我司的Redis在集羣封裝後,不支持“批量操作”的命令。所以,Spring Cache 框架就用不了了。我只能自己使用AOP去實現一套類似的邏輯。 問題描述 在項目中,

原创 30+鏈表問題(二):如何在一次循環中找到單鏈表的中間節點?

引子 在上一篇文章30+鏈表問題(一):如何判斷鏈表是否成環?中,我講了如何使用雙指針判斷一個鏈表中是否存在環。在接下來的這篇文章中,我將繼續講一講雙指針的妙用——在一次循環中找到單鏈表的中間節點。 問題描述 給定一個單鏈表,如何在一次循

原创 30+鏈表問題(一):如何判斷鏈表是否成環?

引子 在上一篇文章《30+鏈表問題:概覽》的引言中,我提到了當初在校招時遇到的一道鏈表面試題。就是這道題了。下面是問題描述以及解決方案。 問題描述 給定一個鏈表,如何判斷該鏈表是否成環? 解題思路 首先,一聽到這個問題,腦子一下子映出下面

原创 30+鏈表問題:概覽

引子 昨天晚上,無意中刷到一篇關於鏈表的問題。突然又想起當年校招時被問到的一道有關鏈表面試題。突然心血來潮,準備記錄一下,自己碰到的、或者蒐羅到的一系列有關鏈表的面試題,在這裏記錄下來,並分享給大家。 文章目錄 30+鏈表問題(一):如何

原创 Redis學習筆記(一):Redis持久化——RDB與AOF

引子 前兩天晚上下班的時候,和朋友走在路上聊起了Redis的主從複製與哨兵模式。突然覺得自己對這一塊的知識還沒有一個比較系統化的瞭解。所以,現在就開始仔細學習一下相關的知識,整理一下Redis相關的知識點,這裏做個記錄,同時也希望能幫助到

原创 如何屏蔽Safari瀏覽器打開開發者工具時,鼠標指針所到之處出現的紅色動畫塊(繪圖閃爍)

引子 之前一起都使用的某Chromium內核的國產瀏覽器,但是後來發現用那玩意兒MBP發熱太嚴重了,於是乎,就換成Safari瀏覽器,使用了下,發熱降低了很多,而且調試工具,也還好,能接受。 問題描述 下面說說碰到的問題。在我沒有打開【開

原创 JPA 動態查詢之AND、OR結合使用

引子 現在,我負責開發的項目中,使用JPA作爲ORM框架。有了JPA,一行SQL都沒寫過。在昨天,有一個新的需求,需要進行動態查詢,這個簡單。但是有一個地方需要AND、OR結合使用,這裏,我將記錄下我的理解與寫法,希望能幫助到大家。 問題

原创 Mac安裝VMWare Fusion,並且安裝 Win10 虛擬機

引子 前幾天,一位朋友在Mac上安裝雙系統,最後導致鍵盤失靈。在幫她解決的過程中,我發現有很多網友到遇到了類似的情況。最後在蘋果售後那裏解決好問題後,我幫她安裝了一個VMWare Fusion + Win10 的虛擬機,這裏,記錄下安裝步

原创 Thymeleaf高級語法:使用rowspan等構建複雜表格

引子 之前自己擼代碼的時候,需要使用郵件發送報表。當然,我曾在項目中見過有大佬直接使用StringBuilder拼接除了一整個表格的HTML。這種牛逼而又Low B的代碼,實在是鄙視。針對這個需求,我選擇的方式是,使用Thymeleaf將

原创 Spring Cache使用中的坑——緩存數據修改導致緩存Key失效問題

問題描述 今天在項目中突然碰到一個問題:Spring Cache緩存在執行兩次後,突然Key中定義的條件失效。代碼如下: public class CodeOutputService { // 注入當前類的對象 @Res