原创 手擼LRU算法和LRU在Redis中的配置詳解

1、概念 LRU是Least Recently Used的縮寫,即最近最少使用。百度百科中說:LRU是一種常用的頁面置換算法,選擇最近最久未使用的頁面予以淘汰。鐵子們說:LRU是一種緩存淘汰算法,其核心思想是,如果數據最近被訪問過,那麼將

原创 從宏觀角度分析Spring源碼之AOP

衆所周知,Spring容器的三大核心功能是IOC、DI和AOP,前面我們已經對IOC和DI的理論做了淺析,這篇文章將從AOP的概念、設計思路、應用場景、Spring AOP的源碼分析四方面入手,理解下AOP究竟是個神馬東東。 1、概念 A

原创 從宏觀角度分析Spring源碼之DI

上篇文章講解了IOC容器的初始化,將所有需要加載的Bean的定義(BeanDefinition)放入到了beanDefinitionMap中以等待後續的實例化和依賴注入。翻過源碼的鐵子們一定知道Bean的實例化和依賴注入過程的調用鏈非常繁

原创 從宏觀角度分析Spring源碼之IOC

今天是5月3號,烈日似火,熱的讓人喘不過氣來。就在這個讓人燥熱的時刻我準備開始着手寫Spring源碼分析一系列文章。一是鞏固自己的知識體系,二是分享一些技術心得給鐵子們,讓Spring技術原理通俗易懂的展現在大家面前,從此讓世界上不再有不

原创 在Spring MVC或Spring Boot中使用Filter打印請求參數問題

 使用Spring MVC或Spring Boot中打印或記錄日誌一般使用AOP記錄Request請求和Response響應參數,在不使用AOP的前提下,如果在Filter中打印日誌,在打印或消費請求類型爲Content-Type:app

原创 淺談Java領域中的SPI擴展機制

在Java領域,有一種重要的服務擴展機制,即SPI,它在編寫框架和項目應用中起着重要的作用。SPI的英文全稱爲service provider interface,即服務提供接口,在JDK、Spring和Dubbo中都有它的存在。 我個人

原创 淺析緩存和數據庫數據一致性的高深學問

如今在Web系統中,緩存的應用是保證系統吞吐量必不可少的技術。好多開發者認爲,緩存太簡單啦,一頓set和get操作就完事了,真的是很So easy!聽到這些話,我笑了~~ 我爲什麼笑呢,有緩存使用經驗的老鐵們可能會明白,系統緩存和數據庫數

原创 淺析在Spring Boot中應用Spring Security的配置代碼

我們在用java寫後端的時候,涉及到權限的話,除了自己寫簡單的權限管理代碼外,還有Spring Security和Shiro兩種選擇,今天我們探討下應用Spring Security安全框架下的配置。 衆所周知,在Spring Boot中

原创 Netty採用NIO而非AIO的理由

1、Netty不看重在Windows系統上的應用,而在Linux系統上AIO的底層實現仍使用EPOLL模型,沒有很好的實現AIO,因此性能上沒有明顯的優勢,而且被JDK封裝一層也不容深度優化。 2、Netty整體架構是Reactor模型,