原创 Servlet – Upload、Download、Async、動態註冊

Upload-上傳隨着3.0版本的發佈,文件上傳終於成爲Servlet規範的一項內置特性,不再依賴於像Commons FileUpload之類組件,因此在服務端進行文件上傳編程變得不費吹灰之力. 客戶端要上傳文件, 必須利用multipar

原创 記一次MySQL遷移並從MySQL5.6升級到5.7後查詢慢了幾十倍的問題

起因 因爲生產環境數據量越來越大,客戶越來越多,項目功能也越來越多,項目本身也越來越多,導致之前的服務器內存、硬盤都已經漸漸的不夠用了,當時出現了2種解決方案,增加服務器配置和新購服務器,但是就算是新增硬盤,也需要對數據庫進行遷移,所以就採

原创 深入分析JavaWeb Item6 — servletConfig 與servletContext詳

一、ServletConfig講解首先看ServletConfig API文檔 1.1、配置Servlet初始化參數在Servlet的配置文件web.xml中,可以使用一個或多個<init-param>標籤爲servlet配置一些初始化參數

原创 徒手擼框架--實現 RPC 遠程調用

微服務,已經是每個互聯網開發者必須掌握的一項技術。而 RPC 框架,是構成微服務最重要的組成部分之一。趁最近有時間。又看了看 dubbo 的源碼。dubbo 爲了做到靈活和解耦,使用了大量的設計模式和 SPI機制,要看懂 dubbo 的代碼

原创 Java HTTP 組件庫選型看這篇就夠了

最近項目需要使用 Java 重度調用 HTTP API 接口,於是想着封裝一個團隊公用的 HTTP client lib. 這個庫需要支持以下特性: 連接池管理,包括連接創建和超時、空閒連接數控制、每個 host 的連接數配置等。基本上,我

原创 HashMap? ConcurrentHashMap? 相信看完這篇沒人能難住你!

前言 Map 這樣的 Key Value 在軟件開發中是非常經典的結構,常用於在內存中存放數據。 本篇主要想討論 ConcurrentHashMap 這樣一個併發容器,在正式開始之前我覺得有必要談談 HashMap,沒有它就不會有後面的 C

原创 深度解析Java線程池的異常處理機制

引言在Java中,使用線程池來異步執行一些耗時任務是非常常見的操作。最初我們一般都是直接使用new Thread().start的方式,但我們知道,線程的創建和銷燬都會耗費大量的資源前言今天小夥伴遇到個小問題,線程池提交的任務如果沒有cat

原创 Spring中的統一異常處理

在具體的SSM項目開發中,由於Controller層爲處於請求處理的最頂層,再往上就是框架代碼的。因此,肯定需要在Controller捕獲所有異常,並且做適當處理,返回給前端一個友好的錯誤碼。 不過,Controller一多,我們發現每個C

原创 SpringBoot+JWT+Shiro+MybatisPlus實現Restful快速開發後端腳手架

一、背景前後端分離已經成爲互聯網項目開發標準,它會爲以後的大型分佈式架構打下基礎。SpringBoot使編碼配置部署都變得簡單,越來越多的互聯網公司已經選擇SpringBoot作爲微服務的入門級微框架。 Mybatis-Plus是一個 My

原创 深度解讀 java 線程池設計思想及源碼實現

我相信大家都看過很多的關於線程池的文章,基本上也是面試必問的,好像我寫這篇文章其實是沒有什麼意義的,不過,我相信你也和我一樣,看了很多文章還是一知半解,甚至可能看了很多瞎說的文章。希望大家看過這篇文章以後,就可以完全掌握 Java 線程池了

原创 PHP命令行下的世界

php命令行(CLI)參數詳解以交互式shell模式運行php運行內建的Web服務器查找PHP的配置文件查看類/函數/擴展信息語法檢查命令行腳本開發PHP作爲一門web開發語言,通常情況下我們都是在Web Server中運行PHP,使用瀏覽

原创 Java 內存溢出排查

Java OOM 毫無疑問是開發人員常見並且及其痛恨的問題,但是任何服務的開發都沒法避免 OOM。 因此,OOM 的排查及定位是每個 Java 工程師都必備的技能。 所遇到的問題在使用 scala 開發的一個 web 服務,在用戶使用中,經

原创 JDK 源碼閱讀 Reference

Java最初只有普通的強引用,只有對象存在引用,則對象就不會被回收,即使內存不足,也是如此,JVM會爆出OOME,也不會去回收存在引用的對象。 如果只提供強引用,我們就很難寫出“這個對象不是很重要,如果內存不足GC回收掉也是可以的”這種語義

原创 zookeeper 僞集羣搭建

簡介Zookeeper 是 一個分佈式。開放源碼的分佈式應用程序協調服務,是Google Chubby的一個開源實現,大多數的分佈式應用都需要Zookeeper的支持,這篇文章先簡單的和大家分享如何搭建一個zookeeper集羣。(筆者注:

原创 shell編程

1、概念   shell就是一個計算機應用程序,跟QQ、×××等類似,但是他主要是提供計算機的操作界面,例如我們所使用Windows操作系統的圖形操作界面和cmd.exe命令行操作界面。shell並不是操作系統內核,可以看成是內核外邊的殼,