原创 深入理解Spring註解機制(三):合併註解的合成

前言 衆所周知,spring 從 2.5 版本以後開始支持使用註解代替繁瑣的 xml 配置,到了 springboot 更是全面擁抱了註解式配置。平時在使用的時候,點開一些常見的等註解,會發現往往在一個註解上總會出現一些其他的註解,比如 @

原创 深入理解Spring容器初始化(三):事件及其他配置的初始化

前言 我們知道,spring 的啓動其實就是容器的啓動,而一般情況下,容器指的其實就是上下文 ApplicationContext。 AbstractApplicationContext 作爲整個 ApplicationContext 體系

原创 深入理解Spring容器體系結構

前言 在 spring 中,任何實現了 BeanFactory 接口的類都可以視爲容器,它是 IOC 功能實現的核心,用於完成類實例從加載到銷燬的整個生命週期的控制,這些被 spring 所管理的實例統稱爲 bean。 根據抽象層級的不同,

原创 crane:字典項與關聯數據處理的新思路

前言 在我們日常開發中,經常會遇到一些煩人的數據關聯和轉換問題,比如典型的: 對象屬性中個有字典 id,需要獲取對應字典值並填充到對象中; 對象屬性中有個外鍵,需要關聯查詢對應的數據庫表實體,並獲取其中的指定屬性填充到對象中; 對象屬性

原创 spring源碼解析:元註解功能的實現

前言 衆所周知,spring 從 2.5 版本以後開始支持使用註解代替繁瑣的 xml 配置,到了 springboot 更是全面擁抱了註解式配置。平時在使用的時候,點開一些常見的等註解,會發現往往在一個註解上總會出現一些其他的註解,比如 @

原创 發佈自己的jar包到Maven官方倉庫

一、申請GroupId 我們知道,一個maven座標由groupId,artifactId和version組成,後兩者可以在pom中調整,而可以用在中央倉庫的 groupId需要申請。由於 Maven 中央倉庫由 sonatype 公司進行

原创 synchronized底層原理探究

概述 說起多線程同步,一般的方案就是加鎖,而在 java 中,提到加鎖就想起 juc 包提供的 Lock 接口實現類與默認的關鍵字 synchronized 。我們常聽到,juc 下的鎖大多基於 AQS,而 AQS 的鎖機制基於 CAS,相

原创 next5主題自定義摘要

概述 最近 next6 折騰了一段時間,最後還是回到了 next5,但是添加閱讀全文按鈕以後,默認的摘要生成不太方便,於是就把注意打到了 js 上。 這裏整理一下 next5 生成摘要的方法。 一、yaml 這個是 hexo 自帶的,通過直

原创 java集合源碼分析(六):HashMap

概述 HashMap 是 Map 接口下一個線程不安全的,基於哈希表的實現類。由於他解決哈希衝突的方式是分離鏈表法,也就是拉鍊法,因此他的數據結構是數組+鏈表,在 JDK8 以後,當哈希衝突嚴重時,HashMap 的鏈表會在一定條件下轉爲紅

原创 java集合源碼分析(五):Map與AbstractMap

概述 Map 接口是 java 中兩大集合接口之一,相對於 Collection,Map 接口結構規定了所有鍵值對形式的集合容器。同時,它與 Collection 的子接口 Set 又密切相關,Map 一部分實現依賴於 Set 集合,而 S

原创 如何解決next5主題目錄無法跳轉的問題

概述 目前使用的 next 版本是 5.1.4 ,文章左側的目錄一直不能跳轉也不能展開,按網上的辦法一直沒法解決,今天自己琢磨了一陣總算搞定了。 由於發現遇到這個問題的人不少,特此總結一下。 一般分爲兩種情況:渲染錯誤和超鏈接亂碼。 一、渲

原创 java集合源碼分析(三):ArrayList

概述 在前文:java集合源碼分析(二):List與AbstractList 和 java集合源碼分析(一):Collection 與 AbstractCollection 中,我們大致瞭解了從 Collection 接口到 List 接口

原创 java集合源碼分析(二):List與AbstractList

概述 上一篇文章基本介紹了 List 接口的上層結構,也就是 Iterable 接口,Collection 接口以及實現了 Collection 接口的抽象類的基本情況,現在在前文的基礎上,我們將繼續向實現前進,進一步的探索 List 接口

原创 java集合源碼分析(一):Collection 與 AbstractCollection

概述 我們知道,java 中容器分爲 Map 集合和 Collection 集合,其中 Collection 中的又分爲 Queue,List,Set 三大子接口。 其中, List 應該是日常跟我們打交道最頻繁的接口了,按照 JavaDo

原创 Redis在SpringBoot的基本使用

一、配置 1.添加依賴 在 springboot 啓動器中直接添加依賴,或者創建後添加 Maven 依賴: <!--spring-boot-starter-data-redis--> <dependency> <groupId>or