原创 Springboot配置log4j2異步輸出日誌

強哥之前有發過一篇文章:聊一聊項目中的日誌配置,其中講述了項目log4j日誌配置文件中,通過修改一些參數實現日誌分期保存以及保存文件個數限制相關問題以及相應的處理方式。當然如果日誌量過大還是推薦項目中接入ELK將日誌放入搜索引擎中進行後期

原创 SpringBoot默認200個線程對於Websocket長連接夠用嗎?(一)

上篇推文從源碼剖析SpringBoot中Tomcat的默認最大連接數中我們知道,SpringBoot的內嵌Tomcat默認的最大連接數爲200。那麼,這個默認值對於項目中引入了WebSocket使用長連接後,是否足夠用呢?今天強哥就帶大家

原创 如何獲取Apollo上項目下的所有namespace?

背景 項目配置遷移到Apollo之後,通過統一的配置管理及配置監聽使得項目配置修改的成本大大降低。 但是,在使用Apollo的過程中,強哥也遇到一個問題:如果我們要獲取Apollo下的namespace信息需要通過ConfigServer

原创 如何截取頁面長圖?任意頁面,無敵截圖

不多逼逼,用的人都知道,無敵,chrome插件:

原创 Springboot整合WebSocket,實現向指定頁面推送信息

技術選型 Springboot + WebSocket + Mybatis + Enjoy(類似Jsper、freemarker的模板引擎) + FastJson+ SpringBoot 默認的連接池 Hikari 由於懶的寫樣式,並且不

原创 從源碼研究如何不重啓Springboot項目實現redis配置動態切換

上一篇Websocket的續篇暫時還沒有動手寫,這篇算是插播吧。今天講講不重啓項目動態切換redis服務。 背景 多個項目或微服務場景下,各個項目都需要配置redis數據源。但是,每當運維搞事時(修改redis服務地址或端口),各個項目都

原创 從源碼研究如何不重啓項目實現redis配置動態切換

上一篇Websocket的續篇暫時還沒有動手寫,這篇算是插播吧。今天講講不重啓項目動態切換redis服務。 背景 多個項目或微服務場景下,各個項目都需要配置redis數據源。但是,每當運維搞事時(修改redis服務地址或端口),各個項目都

原创 Java mysql 處理特殊字符% _

sql中經常用like進行模糊查詢,而模糊查詢就要用到百分號“%”,下劃線“_”這些通配符,其中“%”匹配任意多個字符,“_”匹配單個字符。如果我們想要模糊查詢帶有通配符的字符串,如“60%”,“user_name”,就需要對通配符進行轉

原创 SpringMVC異步處理模式分析(DeferredResult/SseEmitter等)

1. 背景 Tomcat等應用服務器的連接線程池實際上是有限制的;每一個連接請求都會耗掉線程池的一個連接數;如果某些耗時很長的操作,如對大量數據的查詢操作、調用外部系統提供的服務以及一些IO密集型操作等,會佔用連接很長時間,這個時候這個連

原创 Java類加載器及自定義

Java類加載器的作用是尋找類文件,然後加載Class字節碼到JVM內存中,鏈接(驗證、準備、解析)並初始化,最終形成可以被虛擬機直接使用的Java類型。 類加載器種類 有兩種類加載器:1 啓動類加載器(Bootstrap ClassLo

原创 解決swagger返回map複雜結構不能解析 Resolver error at definitions

解決: @Configuration public class SwaggerConfig { @Autowired private TypeResolver typeResolver; @Bean

原创 Java NIO原理與簡單實現

Java NIO 簡介 JAVA NIO有兩種解釋:一種叫非阻塞IO(Non-blocking I/O),另一種也叫新的IO(New I/O),其實是同一個概念。它是一種同步非阻塞的I/O模型,也是I/O多路複用的基礎,已經被越來越多地應

原创 10分鐘看懂, Java NIO 底層原理

1.1. Java IO讀寫原理 無論是Socket的讀寫還是文件的讀寫,在Java層面的應用開發或者是linux系統底層開發,都屬於輸入input和輸出output的處理,簡稱爲IO讀寫。在原理上和處理流程上,都是一致的。區別在於參數的

原创 Java導出Excel解決亂碼及導出文件打開不可讀需修復的問題

導入包,本來自己也不想用poi處理的,怎奈不知道爲什麼自己用流導出總是會報錯不可讀,所以還是簡單點吧: <dependency> <groupId>org.apache.poi</groupId> <artifactId

原创 聊一聊項目中的日誌配置

相信大家都知道,作爲一個開發,除了要會寫bug之外,還要能夠通過日誌來解決bug。這樣,線上出了問題,有人來找我們解決,有人需要我們,我們才能保住自己的飯碗……可見,要知道怎麼檢測和解決自己搞出來的bug是多麼的重要。 嘿嘿,開個玩笑,引