原创 Nacos如何實現服務自動註冊
{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"1. 背景"}]},
原创 Spring事件執行流程源碼分析
{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":" 1. 背景"}]}
原创 Mybatis 緩存 源碼分析
文章目錄1. 結論2. Show code2.1 SimpleExecutor2.2 CacheExecutor3 細說 1. 結論 老規矩,先說結論。給各位大兄弟來點總結。 mybatis有兩級緩存,分別是: SqlSessi
原创 mybatis執行過程源碼分析
1 總結 代碼有些多,怕有的大兄弟耐不下心, 就先寫一個總結。 mybatis的的大概流程是這樣的: 通過解析配置文件分析mapper文件和接口,生成代理對象。 根據配置文件,創建會話 通過會話拿到代理對象 通過代理對象,執行具
原创 特大消息!!
特大消息!! 爲各位愛學習的同學準備了最新的Java Study Video(架構師方向, 懂得都懂,不懂的不多說). 關注公衆號 星球x,回覆學習起來就可以領走啦!只有7天,過時不候!
原创 SpringBoot之Feign調用方式比較
一:事發原因 兩個東家都使用SpringCloud,巴拉巴拉用上了Spring全家桶,從eureka到ribbon,從ribbon到feign,從feign到hystrix,然後在使用feign的時候發現使用方式不同,仔細一看這種調用方
原创 ReentrantReadWriteLock之讀寫鎖判斷
一. 讀寫鎖是怎麼實現的? 繼承AQS,然後通過將AQS中的state轉化爲二進制,分爲高16位和低16位來區分。高16位表示讀狀態,低16位爲寫狀態。 二. 解析表示方式(高低16位) 假設此時state是數值S a.寫鎖
原创 SPI簡要分析
一、背景介紹 在看spring源碼和dubbo源碼的時候,發現兩者都用採用了JDK中spi的技術,發現都有大作用,所以就來分析下JDK中的SPI的使用方式及源碼實現。 二、什麼是SPI SPI的全稱是 Service Provid
原创 01 AutoConfigurationImportSelector到底怎麼初始化
1. 前言 我們知道,在spring中,一般的實現ImportSelector接口,然後重寫selectImports方法,就可以使用到spring的SPI技術,加載spring.factories中配置的org.springfr
原创 Redis數據存儲結構之String
前言: 在Redis使用中,我們最常使用的操作是set key value,或 get key value 。這裏麪包含了redis最基本的數據類型:String,字符串類型是redis中最基本的類型,它能存儲任何形式的字符串,包括二
原创 Java開發工具與HelloWorld
環境裝好了,那接下來就進入開發啦。在開發過程中,爲了加快我們的開發速度,我們就要選擇一款合適的IDE,接下來我們將介紹開發中使用到的IDE。(喜歡用txt直接開擼的老鐵,可以直接跳過本文) 1. IDE介紹 1.1 Intelli
原创 記一次線上事故
1. 事故發生 某天晚上,收到系統CPU佔用過高報警,立刻登錄服務器查看cpu信息(top,命令即可),此時CPU佔用率高達750%+, 查看GC日誌,頻繁的發生Full GC, 並且一次Full GC市場可達到6s,立刻使用jm
原创 用jdk8的stream來實現斐波那契數列
1. 爲什麼 jdk8用着越來越舒服,各種API, 一頓操作,代碼從上到下一氣呵成,爽! 突然想到,怎麼用stream來實現斐波那契數列? 2. 說幹就幹 斐波那契數列就是後一個數是前兩個數的和,即 n = (n-1) + (n
原创 Nacos配置中心源碼分析
1. 什麼是Nacos ? Nacos主要用做註冊中心和配置中心。Nacos介紹,Nacos用法, Nacos源碼下載 etc… 請查看Nacos官方文檔, 本文基於nacos版本1.2.0進行分析。 2. Nacos代碼
原创 Spring之byte[]傳輸
事出原因 某些原因,需要在在服務之間傳輸文件,想到只有通過Byte數組,或者是Stream傳遞,遂定下兩方法,一個byte,一個inpustream,老樣子,upload(@RequestParam("id")Integer id,