原创 Docker與CI持續集成/CD

Docker與CI持續集成/CD背景       Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之

原创 SpringMVC的攔截器(Interceptor)和過濾器(Filter)的區別與聯繫

一 簡介(1)過濾器:依賴於servlet容器。在實現上基於函數回調,可以對幾乎所有請求進行過濾,但是缺點是一個過濾器實例只能在容器初始化時調用一次。使用過濾器的目的是用來做一些過濾操作,獲取我們想要獲取的數據,比如:在過濾器中修改字符編

原创 RabbitMQ的應用場景以及基本原理介紹

1.背景RabbitMQ是一個由erlang開發的AMQP(Advanved Message Queue)的開源實現。2.應用場景2.1異步處理場景說明:用戶註冊後,需要發註冊郵件和註冊短信,傳統的做法有兩種1.串行的方式;2.並行的方式

原创 springboot(集成篇):RabbitMQ集成詳解

RabbitMQ 即一個消息隊列,主要是用來實現應用程序的異步和解耦,同時也能起到消息緩衝,消息分發的作用。消息中間件在互聯網公司的使用中越來越多,剛纔還看到新聞阿里將RocketMQ捐獻給了apache,當然了今天的主角還是講Rabbi

原创 基於jwt的token驗證

JWT簡介JWT(json web token)是爲了在網絡應用環境間傳遞聲明而執行的一種基於JSON的開放標準。JWT的聲明一般被用來在身份提供者和服務提供者間傳遞被認證的用戶身份信息,以便於從資源服務器獲取資源。比如用在用戶登錄上。基

原创 理解maven命令package、install、deploy的聯繫與區別

  我們在用maven構建java項目時,最常用的打包命令有mvn package、mvn install、deploy,這三個命令都可完成打jar包或war(當然也可以是其它形式的包)的功能,但這三個命令還是有區別的。下面通過分別執行這

原创 Spring IOC原理總結

Spring容器高層視圖Spring 啓動時讀取應用程序提供的Bean配置信息,並在Spring容器中生成一份相應的Bean配置註冊表,然後根據這張註冊表實例化Bean,裝配好Bean之間的依賴關係,爲上層應用提供準備就緒的運行環境。Be

原创 Spring兩大核心之一AOP的基本原理

AOP:面向切面編程,可以通過預編譯方式和運行期動態代理實現在不修改源代碼的情況下給程序動態統一添加功能的一種技術。主要功能有日誌記錄,性能統計,安全控制,事務處理,異常處理等等。主要意圖就是把以上功能從業務邏輯代碼中分離出來,進而改變這

原创 shell腳本基本語法詳解

編寫shell腳本的時候,最前面要加上一行:#!/bin/bash,因爲linux裏面不僅僅只有bash一個解析器,還有其它的,它們之間的語法會有一些不同,所以最好加上這一句話,告訴系統要用這個解析器。一.shell變量shell變量和一

原创 Java 8 Optional類深度解析

思考: 調用一個方法得到了返回值卻不能直接將返回值作爲參數去調用別的方法。原來解決方案: 我們首先要判斷這個返回值是否爲null,只有在非空的前提下才能將其作爲其他方法的參數。這正是一些類似Guava的外部API試圖解決的問題。     

原创 spring-boot獲取form-data數據及json數據

@PostMapping("/") public ObjectNode getCourses(Request request, @RequestHeader(value = "area") String city) { if(S