原创 RestTemplate和web的一些坑

使用RestTemplate進行get請求時不能直接使用路徑訪問,需要使用類似於這種的url /user/login?username={username}&password={password} 使用原始類型作爲Controller

原创 netty服務端啓動過程分析

netty 服務端啓動 創建ServerBootstrap,該類是Netty服務端的啓動類 綁定Reactor線程池,EventLoopGroup,實際上就是EventLoop的數組.除了處理IO操作外,用戶提交的task

原创 mybatis執行原理

創建SqlSessionFactoryBuilder對象,通過外部配置創建SqlSessionFactory對象 使用SqlSessionFactory創建SqlSession對象,此處創建的是DefaultSqlSession

原创 使用JDK動態代理實現裝飾器

使用JDK動態代理實現裝飾器 衆所周知,裝飾器模式和代理模式非常類似,只不過一個是爲了增強功能,一個是訪問控制。 最近在做一個項目,中間遇到了這麼一個需求,在運行時動態的給一個類新增接口。 假設現有的類A是接口 IA 的實現,期望

原创 通用的單進程執行

通用的單進程執行 之前寫過一個基於文件鎖的單進程執行,但由於JDK8中存在bug,因此又設計了一種通用的單進程執行實現方法. 流程如下 ,這個文件名可以是固定的,也可以根據執行文件名來 則則否則否則獲取當前進程的pid如果pid文

原创 Aware接口的一些看法

關於 spring 中的 xxaware接口,aware 的意思是 意識到,對。。。有興趣 也就是說實現了 aware 接口意味着對這些內容有興趣。 比如ApplicationEventPublisherAware意味着對Ap

原创 junit--輸入相關的測試

一般使用輸入時都使用Scanner類 Scanner scanner=new Scanner(System.in); while(scanner.hasNext()){ String next=scanner.next()

原创 spring-cloud-stream的手動消息確認

對於kafka-binder來說,設置autoCommitOffset爲false.然後在listen中手動確認 @StreamListener(Sink.INPUT) void listen(@Header(KafkaHeaders.

原创 表達式計算引擎-JEP

最近調整了原先的一箇中間件的功能,把之前被產品去掉的規則表達式計算又重新添了回去. 這個中間件的基本功能是使用預定義的關鍵字和數值比對進行判斷,從大量的數據中生成告警,主要是用於服務器監控. 這裏的表達式計算僅使用了與邏輯相關的一

原创 只啓動一個進程,以及java的文件鎖問題

保證只啓動一個應用,通常可以使用兩種方法 獲取 一個 文件鎖,並且在應用 運行期間都不進行 釋放 綁定一個端口,並且在運行期間都不進行釋放 綁定端口要浪費一個端口,因此不推薦. 下面是java獲取一個文件鎖的操作. @Snea

原创 ActiveMQ連接不釋放問題

ActiveMQ連接不釋放問題 實際問題爲:大量失效連接處於ESTABLISHED狀態. 檢查問題的過程 線上出現了activemq連接不上的報錯The JMS Connection has failed 到mq所在的服務查看,連

原创 HashMap源代碼.by 1.8

HashMap HashMap是一個k-v的查找表 class HashMap<>{ //表,在第一次使用時初始化,並根據需要調整大小。分配時,長度總是2的冪(在某些操作中,我們還允許長度爲零,以允許當前不需要的引導機制)

原创 記一次rsyslog的轉發問題

rsyslog是可以配置tcp的轉發模式的,使用兩個@符號作爲標記,一個的話就是udp模式 在/etc/rsyslog.conf中發現配置了三條轉發規則 *.* @@aaa:514 *.* @@bbb:514 *.* @ccc:514 其

原创 線程上下文加載器

線程上下文加載器(ThreadContextLoad) 任意一個繼承了ClassLoader的類都可以被設置爲線程上下文加載器. 通過以下函數 Thread.currentThread().setContextClassLoade

原创 api安全筆記

api安全 什麼是api? application program interface 爲客戶端提供服務的一種方式. 當我們討論api安全時,包括 信息安全: 保證信息在整個生命週期中是受到保護的 網絡安全:傳輸過程中的安全,防