原创 靜態代理與JDK動態代理與CGLIB動態代理

爲了理解spring的AOP。 理解JDK動態代理與CGLB動態代理,非常重要。 講動態代理必講靜態代理。 靜態代理與動態代理是一種設計思想 靜態代理 靜態代理是在編譯期將擴展代碼織入代理對象 實現方式 1.代理模式:可以理解爲硬

原创 Mybatis源碼系列4-一級緩存

2020年,你好。 在哪裏 每次當我從sqlsession工廠獲取一個sqlsession時,都會創建一個BaseExecutor執行器,而一級緩存跟隨執行器一起創建 ///DefaultSqlSessionFactory p

原创 SpringCloud源碼閱讀1-Eureka服務端的祕密

Eureka服務端題外話:1.組件的配置:1.1 啓用Eureka註冊中心1.2 組件的配置。2.EurekaServerContext初始化:2.1 @Inject註解的構造方法2.2 @PostConstruct註解的init

原创 spring源碼系列11:事務代理對象的執行

回顧 在事務代理對象的創建一節, 事務通過定義 切點: TransactionAttributeSourcePointcut 、 通知(攔截器) TransactionInterceptor Advisor: BeanFact

原创 SpringCloud源碼閱讀2-Eureka客戶端原理

Eureka客戶端1.配置類2.EurekaClient2.1EurekaClient構造方法2.1.1 EurekaTransport2.1.2 fetchRegistry2.1.3 initScheduledTasks2.1.

原创 發送http請求(2):RestTemplate發送http請求

RestTemplate關聯閱讀(必讀):相關組件繼承體系RestOperationsHttpAccessorInterceptingHttpAccessor屬性體系RequestCallbackResponseExtractor

原创 SpringCloud源碼閱讀0-SpringCloud必備知識

在開始源碼閱讀前,我覺得有必要先講講springcloud的體系。 SpringCloud 是一系列微服務工具項目的集合。這個集合包含如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等工具。 這些項目地址在:http

原创 spring事務的三個坑

回顧 在spring源碼系列11:事務代理對象的執行那一節,得出的結論 事務執行:通過TransactionInterceptor增強器對 目標方法進行環繞增強。 調用目標方法前,創建事務。 執行目標方法 調用目標方法後,提交事

原创 springcloud註冊hostname或者ip那點事

註冊hostname/ip 默認情況下,Eureka 使用 hostname 進行服務註冊,以及服務信息的顯示, 如果我們相擁 IP 地址的方式,可以在配置文件中配置eureka.instance.prefer-ip-addres

原创 spring源碼系列10:AOP代理對象的執行

說完了AOP代理對象的創建,事務代理對象的創建,這文,講講AOP代理對象執行 回顧: 靜態代理與JDK動態代理與CGLIB動態代理 Spring中的InstantiationAwareBeanPostProcessor和Bean

原创 ThreadLocal中篇:解開ThreadLocal的神祕面紗

簡介: ThreadLocal 用來提供線程級別變量,變量只對當前線程可見。相比與“使用鎖控制共享變量訪問順序”的解決方案。 ThreadLocal通過 空間換時間的方案,規避了競爭問題,每個線程都有屬於自己的變量。 此時就產生了

原创 Dubbo源碼閱讀前夜-SPI的本質

SPI前言JAVA SPI機制如何使用源碼分析ServiceLoaderLazyIterator熟悉又陌生的應用場景存在問題似曾相似(Spring SPI)SpringFactoriesLoaderDubbo SPIExtensi

原创 @LoadBalanced註解的RestTemplate擁有負載均衡的能力

關聯閱讀(必讀) 發送http請求(1):發送http請求的幾種方式 發送http請求(2):RestTemplate發送http請求 SpringCloud源碼閱讀4:Ribbon客戶端負載均衡(下) 回顧 當我在Ribbon的

原创 Transaction與SqlSession,Connection的關係

Transaction與SqlSession,Connection 存在什麼關係?他們爲什麼而存在? 文章目錄回顧ConnectionTransactionSqlSession總結 回顧 JDBC 1. 註冊驅動 Class

原创 @PropertySource和@ConfigurationProperties區別

@ConfigurationProperties @ConfigurationProperties是springboot中註解,用於將主配置文件(application.properties或者“application.yml”