原创 使用純Java實現一個WebSSH項目

前言 最近由於項目需求,項目中需要實現一個WebSSH連接終端的功能,由於自己第一次做這類型功能,所以首先上了GitHub找了找有沒有現成的輪子可以拿來直接用,當時看到了很多這方面的項目,例如:GateOne、webssh、she

原创 動手實現MySQL讀寫分離and故障轉移

前言 久違了,由於最近新項目下來了,所以工作特別忙,導致遲遲沒更,上一篇發了手動搭建Redis集羣和MySQL主從同步(非Docker)之後,很多同學對文中主從結構提到的讀寫分離感興趣,本打算在雙十一期間直接把讀寫分離分享給大家,

原创 MyBatis源碼解析(二)—執行篇

前言 上一篇文章《MyBatis源碼解析(一)—構造篇》提到了MyBatis是如何構建配置類的,也說了MyBatis在運行過程中主要分爲兩個階段,第一是構建,第二就是執行,所以這篇文章會帶大家來了解一下MyBatis是如何從構建完

原创 MyBatis源碼解析(一)——構造篇

前言 好久不見,從上一篇文章過後,休整了兩個月,又逢疫情特殊時期,天天宅在家裏挺屍,真是見證了一個人可以懶惰到什麼境界。好吧廢話不多說了,今天會給大家分享我們常用的持久層框架——MyBatis的工作原理和源碼解析。 說實話MyBa

原创 手動搭建Redis集羣和MySQL主從同步(非Docker)

前言 一直都想自己動手搭建一個Redis集羣和MySQL的主從同步,當然不是依靠Docker的一鍵部署(雖然現在企業開發用的最多的是這種方式),所以本文就算是一個教程類文章吧,但在動手搭建之前,會先聊聊理論的東西,以便於大家有一個

原创 SpringBoot自動裝配原理初探

前言 Spring翻譯爲中文是“春天”,的確,在某段時間內,它給Java開發人員帶來過春天,但是隨着我們項目規模的擴大,Spring需要配置的地方就越來越多,誇張點說,“配置兩小時,Coding五分鐘”。這種紛繁複雜的xml配置隨

原创 清空認知,然後重新理解MySQL索引結構

前言 Hello我又來了,快年底了,作爲一個有抱負的碼農,我想給自己攢一個年終總結。自上上篇寫了手動搭建Redis集羣和MySQL主從同步(非Docker)和上篇寫了動手實現MySQL讀寫分離and故障轉移之後,索性這次把數據庫中

原创 MyBatis源碼解析(三)—緩存篇

前言 大家好,這一篇文章是MyBatis系列的最後一篇文章,前面兩篇文章《MyBatis源碼解析(一)—構建篇》和《MyBatis源碼解析(二)—執行篇》,主要說明了MyBatis是如何將我們的xml配置文件構建爲其內部的Conf

原创 從實踐角度重新理解BIO和NIO

前言 這段時間自己在看一些Java中BIO和NIO之類的東西,看了很多博客,發現各種關於NIO的概念說的天花亂墜頭頭是道,可以說是非常的完整,但是整個看下來之後,自己對NIO還是一知半解的狀態,所以這篇文章不會提到很多的概念,而是

原创 9月-10月踩坑記錄(2019)

前言 很早就想整理自己的踩坑記錄發上來,每次把自己踩過的坑發給自己的小號,想着有一天能整理一下。畢竟這些經驗自己也是一步一個坑踏過來的。 第一個坑:關於MyBatis參數類型爲String的問題 問題描述 當時使用MyBati

原创 最適合初學者瞭解的Java多線程與併發基礎

前言 本文會介紹Java中多線程與併發的基礎,適合初學者食用,如果想看關於多線程與併發稍微進階一些的內容可以看我的另一篇博客— 《鎖》 線程與進程的區別 在計算機發展初期,每臺計算機是串行地執行任務的,如果碰上需要IO的地方,還需

原创 【從入門到入土】令人脫髮的數據庫底層設計

前言 說到數據庫這個詞,我只能用愛恨交加這個詞來形容它。兩年前在自己還單純懵懂的時候進了數據庫的課堂,聽完數據庫的課,覺得這是一門再簡單不過的課程,任何一門編程語言都比SQL要晦澀難懂,任何一門理論課程都比數據庫關係要複雜得多。直

原创 JVM—深入理解內存模型與垃圾收集機制

前言 Java是一種跨平臺的語言,當初其設計初衷也是爲了解決各個平臺編譯環境具有差異,對程序移植性問題造成困難這一痛點,於是推出了Java語言。這麼多年Java受業界追捧的原因除了其面向對象的特性以外就是其可移植性強,而可移植性這

原创 關於Shiro框架的學習(一)

前言 由於最近在做一個項目,剛完成到登錄註冊,不想和以前的項目搬同樣的磚了,想完成點不那麼low的功能,像單點登錄、權限控制等,於是就想起了Shiro框架。 初識Shiro 任何一種技術總有個開始,又總是這麼巧,每個開始總是個He

原创 淺談計算機網絡(HTTP-HTTPS-TCP-UDP-IP)

前言 計算機網絡是計算機專業很重要的一門課,課程中詳細闡述了兩臺計算機之間是如何進行通信、如何保證通信的可靠性、如何保證通信的高效性等等內容,在日常coding中可能比較少關注到這方面,但是在真正遇到網絡方面的問題無法解決時,瞭解