原创 Spring MVC源碼---- @RequestBody和@ResponseBody原理解析(版本:Spring Framework 5.1.7.RELEASE)

@RequestBody作用是將http請求解析爲對應的對象。例如: http請求的參數(application/json格式): { "accountId": 10, "adGroupId": "12345678", "c

原创 反編譯小程序,這一篇就夠了!!!

一、前言 看到人家上線的小程序的效果,純靠推測,部分效果在絞盡腦汁後能做出大致的實現,但是有些細節,費勁全力都沒能做出來。很想一窺源碼?查看究竟?看看大廠的前端大神們是如何規避了小程序的各種奇葩的坑?那麼趕緊來試試吧。 反編譯,其實還是簡

原创 零基礎-項目開發經驗分享

前段時間分配到一個支付相關的需求,一個需要和前端對接的項目,需要涉及到前後端對接的問題。爲了可擴展性,決定將支付項目獨立爲一個新的服務。新創建的項目,不熟悉的童鞋可能會遇到一堆的坑,這邊博主簡單分享一下,自己的開發經驗和準則。 確定需求:

原创 記一次redis cpu 100%的緊急bug

前段時間遇到一個棘手問題,mq消費速度突然從30/s變成1/s,而且還持續了很長的一段時間,嚇得我趕緊動手排查問題。但是mq消費速度慢的原因,可能有很多種(例如mysql、jvm、redis、mq、代碼問題等)。爲了可以快速定位問題點,博

原创 慎用System.out.println!!!

初學者一般在開發中或者調試bug的時候,都會習慣性的使用System.out.println語句,輸出到控制檯中,觀察數據是否正常。開發或者調試完畢,很可能就忘記刪除,直接就發佈到生產中去了。 問題導入 有童鞋會說,那有啥關係的,不就是控

原创 finally會不執行嗎???

不知道大家有沒有問過自己,finally方法會在什麼時候不執行呢???有些人可能會一臉懵逼的說:怎麼可能會不執行呢,那我們下面來看看finally到底會不會不執行。 1.finally的含義 finally的真正含義是指從try代碼塊出來

原创 redis反序列化出現:java.lang.ClassNotFoundException異常

不知道大家在使用redis的時候,有沒有遇到過如下錯誤:java.lang.ClassNotFoundException,這個錯誤是因爲反序列化時找不到對應的對象導致的。 什麼是序列化 在開始今天的課程之前,我們先來介紹一下:什麼是red

原创 如何優雅的解決n 1查詢!!!

我們在寫代碼的時候非常忌諱出現n+1次查詢,這就意味的你的循環有多少次,就會查詢多少次數據庫,這是很恐怖的場景。 因爲每次服務調用mysql查詢的時候,都是一件很耗費性能的操作,下面我們舉個例子,來說說n+1的觸發場景及解決方案。 業務需

原创 超大csv解析攻略

前段時間遇到這樣一個需求,解析csv文件數據,將數據封裝批量插入數據庫中。 咋一看確實沒什麼問題,但是看到文件大小的時候,差點沒吐一口老血,文件大小2.1g!!!如果用傳統的方式直接將csv文件流按行解析,然後封裝成po對象,結果很明顯,

原创 第三方接口超大數據獲取方案(下載-解析-入庫模式)

需求: 每間隔2個小時,定時從亞馬遜接口獲取商家廣告數據 細則說明: 商家指的是亞馬遜商家授權給平臺的用戶。(類似淘寶店) 亞馬遜接口指的是亞馬遜對外提供數據的公開接口。 廣告數據指的是商家在亞馬遜平臺添加的廣告,產生的點擊率,轉化率等廣

原创 SpringBoot中使用redis事務

原文鏈接:https://www.jianshu.com/p/c9f5718e58f0 首先從使用springboot+redis碰到的一個問題說起。在前幾篇文章中介紹了用SpringBoot+

原创 Maven依賴管理大全

大家都知道隨着業務的進展,項目會變得越來越多,這個時候如果沒有一個統一的依賴管理中心,就會有很多問題發生。 如果沒有依賴管理中心,會發生哪些問題呢? 項目的依賴會有很多重複,一模一樣的依賴可能要重複寫多次,浪費時間。 如果沒有一個公共的代

原创 Mysql索引使用的正確姿勢

今天給大家簡單的介紹一下mysql的索引用法,像在我們日常業務開發中,最核心的其實就是寫SQL命令,但是你寫的SQL真的用到索引了嗎? 索引實現原理 mysql數據庫索引實現是在存儲引擎中完成的,今天主要以InnoDB存儲引擎爲例給大家介

原创 ELK日誌系統介紹

1.爲什麼要用ELK系統: 當我們的系統發生故障時,我們需要登錄到各個服務器上,使用 grep / sed / awk 等 Linux 腳本工具去日誌裏查找故障原因。 在沒有日誌系統的情況下,首先需要定位處理請求的服務器,如果這臺服務器部

原创 Mybatis中自定義實例化SqlSessionFactoryBean

現在SpringBoot基本成爲開發的標配,如果你上司讓你搭建一個SpringBoot,然後集成Mybatis+Druid,你可以能百度幾下,卡卡就搭建完畢了。 現在項目基本都會使用連接池技術,市面上的連接池有很多,比如:DBCP、c3