原创 優雅的拋出業務異常的詳細信息

分享一個在做規則中心時對異常的思考和處理方式。 主要解決的問題是排查成本問題,讓研發和運營同學能一眼看懂問題。 先看個例子: public class Test { public static void main(String

原创 靜態方法引用spring對象&原理

一些工具類可能需要依賴spring註解,爲了方便可以把工具方法做成靜態方法。我常用的工具有分佈式鎖、環境判斷、日誌跨系統傳輸... 實現 方式一:通過@PostConstruct註解實現 @Component public class Ru

原创 springboot引入xml

//引入xml配置 @ImportResource(locations={"classpath:config/application-bean.xml"})

原创 ThreadLocal內存泄漏簡談

ThreadLocal 內存泄漏 ThreadLocal內存泄露,最主要的原因在於它的內部類ThreadLocalMap中的Entry的設計。Entry繼承了WeakReference<ThreadLocal<?>>,即Entry的key是

原创 Java 函數式編程(三)流(Stream)

流使程序猿可以在抽象層上對集合進行操作。 從外部迭代到內部迭代 什麼是外部迭代和內部迭代呢? 個人認爲,外和內是相對集合代碼而言。 如果迭代的業務執行在應用代碼中,稱之爲外部迭代。 反之,迭代的業務執行在集合代碼中,稱爲內部迭代(函

原创 Fedora(及Redhat所有系列)桌面級工具整合

爲什麼要出這篇文章呢,相信很多redhat粉一直對桌面級系統念念不忘,但是桌面級的它卻需要大量的時間去折騰,下載這下載那的,遍地找應用。因爲他沒有ubuntu和debian那麼使用方便和部署,今後會陸續出關於redhat系列的桌面級使用工

原创 Gnome桌面 .desktop 文件的位置

以 root 權限安裝的程序, 其快捷入口大多創建在 /usr/share/applications目錄下, 也可以創建在~/.local/share/applications 目錄, 以用戶權限安裝的程序 則只能將快捷入口創建在~/.lo

原创 Redis進階篇(三):Redis持久化深入理解

1. RDB持久化 1.1 創建 簡單回顧下RDB文件的創建。 有兩種創建方式: save.阻塞進程去處理(期間不處理別的請求) bgsave.派生一個子進程去處理 1.2 載入 在redis服務啓動時,如果檢測到RDB文件,會進

原创 Redis進階篇(二):Redis對象的底層實現

0. 五類對象分別是什麼 五類對象就是我們常用的string、list、set、zset、hash 1. 爲什麼要有對象 我們平時主要是通過操作對象的api來操作redis,而不是通過它的調用它底層數據結構來完成(外觀模式)。但我們還

原创 docker-compose安裝rabbitMQ

version: '3' services: rabbitMQ: image: rabbitmq:3.7.8-management hostname: localhost ports:

原创 docker-compose部署mysql

version: '3' services: mysql: restart: always image: mysql container_name: mysql ports: - 3306:3

原创 用mwget工具來提升wget下載速度

mwget是一個多線程實現wget的一個工具。 1. 安裝 wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2

原创 docker-compose部署tomcat

docker-compose.yml version: '3' services: tomcat: restart: always image: tomcat container_name: tomcat

原创 LinkedList源碼分析.md

概述 LinkedList是一種可以在任何位置進行高效地插入和移除操作的有序序列,它是基於雙向鏈表實現的,是線程不安全的,允許元素爲null的雙向鏈表。 源碼分析 1. 變量 /** * 集合元素數量 **/ transien

原创 從Mybatis源碼分析其工作原理

Mybatis工作原理也是面試的一大考點,必須要對其非常清晰,這樣才能懟回去。本文建立在Spring+SpringMVC+Mybatis整合的項目之上。 我將其工作原理分爲六個部分: 讀取核心配置文件並返回InputStream流對象