原创 用javascript+jquery編寫的小遊戲-貪喫蛇(雙人對戰版)

前言 這是我在多年前初學jquery, 並結合javascript, 編寫的一個小遊戲.那洋洋灑灑幾千行的js代碼時刻提醒着我"不忘初心!". 效果演示 代碼 引入文件 由於用到了jquery, 所以需要引入js文件 <scr

原创 AtomicInteger源碼級模仿拓展實踐

前言 目前就職於國內比較大的一家保險公司, 昨天所有技術人員減半, 原因是技術部大領導換人… 作爲組內唯一的倖存者, 心裏還是有一絲絲的竊喜, 下面我教大家怎麼寫出別人難以維護的代碼. 騷操作開始了 今早接到了一個需求, 大概就是

原创 接上一篇Http連接池的應用

改動後的代碼, 支持多個url長連接 import org.apache.http.*; import org.apache.http.client.HttpRequestRetryHandler; import org.apac

原创 Http連接池PoolingHttpClientConnectionManager的應用

前言 Http連接需要的三次握手開銷很大, 傳統的HttpURLConnection並不支持連接池, HTTP1.1以上默認開啓keepalive, 對於現在springcloud橫行的社會, feign可以配置好http連接池,

原创 @PostConstruct的應用場景

前言 最近在代碼中兩次看到同事使用@PostConstruct的場景, 有些彆扭, 但是也不能說不對, 畢竟是在項目初始化的時候, 代碼只會執行一次, 下面我挨個舉例說明並附上正統用法. 參考代碼1 @Configuration

原创 rabbitmq消費者限流的一個小問題

前言 對於消費者限流一般都是channel.basicQos(1)來做, 在各種資料中亦可看到channel.BasicQos(0, 1, false)這種寫法, 有什麼區別呢? 分析 通過閱讀rabbitmq源碼, 可跟蹤到括號

原创 excel之非常實用的模糊查詢

前言 excel模糊查詢, 可適當改版, 方便日常工作. 效果 模擬所用的數據 公式 IF($J$2="","",IFERROR(INDEX(B$1:B$20,SMALL(IF(ISNUMBER(FIND($J$2,$B$1:

原创 舊系統升級改造之java導出excel無大小限制

前言 某日, 我接到了一個需求, 優化現有系統的報表模塊, 經過與產品經理溝通及調查發現, 報表導出超過10w條的數據會導致oom, 所以之前一直限制導出數量在10w以下, 這個數字對於一線的業務人員簡直不能忍受, 有時候一個月的

原创 springMvc自定義註解實現攔截器限流

前言 本文適用於springMvc, 當然也包括springboot 代碼 自定義攔截器註解: @Retention(RUNTIME) @Target(METHOD) public @interface AccessLimit {

原创 舊系統升級改造之利用RabbitMq的Rpc功能實現同步查詢類接口

前言 針對國內各大銀行保險大中型企業, 不乏一些使用了好多年的邊緣舊系統, 一直使用又不好廢棄, 當初的開發人員也已經離職, 不好擴展也不好升級, jdk版本低(低於1.8都算低的吧), 架構比較老, 本文使用的是阿里比較老的一個

原创 redis之緩存碼錶

前言 本篇是一個簡單的將常用的碼錶緩存進redis的代碼, 防止頻繁訪問數據庫. 說明 由於是小系統內部使用, 沒有對redis做防止雪崩的處理. 加入了頁面動態控制: 可隨配置項動態更新redis的內容 提供了

原创 redis工具類設計之回調函數的使用

前言 我們平時在項目中手寫共同工具類的時候, 對於好多異常的處理很是頭疼, 對於各種連接, 各種io的開啓關閉控制都是一個頭大的事情, 放在具體使用階段進行處理又怕別人使用的時候忘記關閉. 這個時候回調函數的作用就體現出來了. 代

原创 網上書店(基於servlet3.0的原生代碼)

前言 這是我多年前初學javaWeb, 做的第一個項目. 基於原生servlet3.0的書店, 功能多, 登錄註冊動態數字圖片驗證, 發送郵件, 購買圖書, 每日圖書推薦, 有管理員後臺上傳下載編輯圖書, 模仿百度搜索框, 可動態

原创 rabbitmq突破單個隊列的瓶頸

前言 我們通常談qps只談消息數量, 而忽略了每一條消息的大小, 我們知道每一個隊列也是一個erlang的進程, 向一個隊列裏推送消息時, 往往會在隊列進程中產生性能瓶頸. 在向一個隊列快速發送消息的時候, connection和

原创 舊系統改造之響應式編程的應用

前言 java是一門龐大的語言, 說他龐大是因爲用的人太多了, 我覺得他也是未來的趨勢, 他在不斷的吸收來自各方的優點, 將事物創造的過程越來越自然化, 事物本身就是完美的簡潔的, 如果一段代碼很複雜晦澀難懂, 那他一定是錯的,