原创 基於Swagger2實現接口文檔

Swagger2是一個開源軟件框架,由大型工具生態系統支持,可幫助開發人員設計,構建,記錄和使用Restful Web服務。 這是“維基百科”上對於Swagger2的一個介紹,可見Swagger2是屬於第三方框架,對標的是Rest

原创 閒暇時光,我抓取了一批音樂素材

webCollector 提供精簡的的 API,只需少量代碼即可實現一個功能強大的爬蟲。webCollector 致力於維護一個穩定、可擴的爬蟲內核,便於開發者進行靈活的二次開發。內核具有很強的擴展性,用戶可以在內核基礎上開發自己想要的爬

原创 詳解JVM內存結構模型

衆說周知,Java語言號稱跨平臺,一次編寫,到處運行,而這離不開Java虛擬機(JVM)的存在。 Java並非JVM的唯一語言選擇,Java虛擬機是定義了自己的JVM規定(字節碼文件.class),只要符合JVM規範便可在JVM上運行。如

原创 使用消息隊列實現業務解耦(案例)

在一個系統中,對於一些允許異步處理的業務,消息中間件在業務解耦上總能起到很重要的作用,一定程度上能夠提高系統的相應時間以及吞吐量。消息中間件本質是一個隊列,工作方式就是生產者-消費者模式。 市場上消息隊列的產品有很多,比如:Rab

原创 什麼是可重入鎖以及在Java中的應用

  可重入鎖,顧名思義是指可以重複獲取鎖。對於一個線程,在外部獲取鎖後進行內部方法執行時同樣可以再次獲取到鎖,不用阻塞等待鎖的釋放。可重入鎖的意義一定程度上避免了死鎖。 在Java中,可以使用關鍵字Synchronized實現線程之間互斥

原创 Nginx配置HTTPS實踐以及遇到的問題

HTTP以明文的形式在瀏覽器之間進行數據的交互,沒有任何數據加密,很容易被攻擊者攔截並讀懂,這很不安全。因此現在很多瀏覽器都要求網站域名配置SSL證書,以HTTPS協議進行傳輸。HTTPS可以看作是HTTP+SSL協議,SSL依靠證書來驗

原创 SpringBoot爲什麼適合做微服務開發?

SpringBoot設計的目的是爲了簡化Spring應用初期工程的搭建以及開發過程。從一定的角度上說,SpringBoot並沒有在Spring的基礎上引入新的東西,只是在Spring和一些第三方的框架(比如:Mybatis、Redis、A

原创 學習筆記,Spring和SpringMVC常用註解

註解本身沒有功能的,就和xml一樣。註解和xml都是一種元數據,元數據即解釋數據的數據,這就是所謂配置。 本文主要羅列Spring|和SpringMVC相關常用的註解。 Spring部分 1.聲明bean的註解 @Component 組件

原创 帶你揭開session的面紗

有登錄過網站經驗的人兒都會遇過這樣的一種情景:在登錄過一個網站,只要保持瀏覽器處於打開狀態,即使把有關該網站的頁面都關掉,再訪問該網站依舊會處於登錄狀態。反之,把瀏覽器關掉,下次再訪問該網站就處於離線狀態。舉個例子,我訪問了酷狗和CSDN

原创 理解ThreadLocal實現的線程隔離

在java中,變量的共享可以使用Public static 變量的形式進行聲明,所有的線程都可以使用被Public static 聲明的變量。但如果我們想要每一個線程都有自己的共享變量?(換個角度講,每一個線程中的變量名相同而引用的值不一