原创 Spring AOP註解和切面表達式詳解

AOP設計的初衷 DRY:Don’t Repeat Yourself,減少重複代碼; SoC:Separation of Concerns,關注分離; 水平分離:展示層 --> 服務層 --> 持久層 垂直分離:模塊之間分離; 切

原创 Spring Security權限控制源碼分析

流程圖 類和接口介紹 FilterSecurityInterceptor:是整個權限判斷流程的入口,包含着請求的相關信息; AccessDecisionManager:是一個接口,有一個抽象實現(AbstractAccessDe

原创 Spring Security OAuth核心源碼分析

流程圖 ※:綠色的方塊代表實體類;藍色的方塊代表接口(下方括號中的名稱表示實際調用的實現類); 流程介紹 step1:客戶端發起獲取令牌的請求:/oauth/token; step2:TokenEndpoint是整個流程的入口,可

原创 Effective Java第三章: 對所有對象都通用的方法

一、覆蓋equals方法時遵守通用約定 期望結果 類的每個實例本質上都是惟一的; 不關心類是否提供了“邏輯相等”的測試功能; 超類已經覆蓋了equals方法,從超類繼承過來的行爲對於子類也是合適的; 類是私有的或者是包級私有的,可以

原创 Effective Java 第2章: 創建和銷燬對象

一、用靜態工廠方法代替構造器 靜態工廠方法與構造器相比有以下幾個優點: 靜態工廠方法有名稱; 不必每次調用的時候都創建新的對象; 可以返回原返回類型的任何子類型的對象; 在創建參數化類型實例的時候沒,靜態工廠方法使得代碼變得更加簡潔

原创 Hadoop介紹

Hadoop概念 Apache Hadoop是一款支持數據密集型分佈式應用並以Apache 2.0許可協議發佈的開源軟件框架。 Hadoop是一套開源的軟件平臺,利用服務器集羣,根據用戶的自定義業務邏輯,對海量數據進行分佈式處理。

原创 Kubernets特性及概念介紹

Kubernets概述 Kubernets是什麼 Kubernets是Google在2014年開源的一個容器集羣管理系統,簡稱k8s; k8s用於容器化應用程序的部署,擴展和管理; k8s提供了容器編排、資源調度、彈性伸縮、部署管

原创 @JsonProperty和@SerializedName對比

問題 在日常開發中經常需要將一個json格式的字符串轉換成某個java對象,當json字符串中的字段跟java對象中定義的屬性名不一致時,就會出現轉換錯誤。 將一個java對象轉換成json格式的字符串,並且要求轉換後的字符串中字段

原创 HttpStatus狀態碼詳解

1xx 消息 這一類型的狀態碼,代表請求已被接受,需要繼續處理。這類響應是臨時響應,只包含狀態行和某些可選的響應頭信息,並以空行結束。由於HTTP/1.0協議中沒有定義任何1xx狀態碼,所以除非在某些試驗條件下,服務器禁止向此類客戶

原创 RabbitMQ學習筆記

RabbitMQ介紹        消息隊列中間件是分佈式系統中重要的組件,主要解決應用耦合,異步消息,流量削鋒等問題。實現高性能,高可用,可伸縮和最終一致性架構。是大型分佈式系統不可缺少的中間件。        RabbitMQ

原创 RabbitMQ:死信隊列DLX介紹及演示

DLX: Dead Letter Exchange        利用DLX,當消息在一個隊列中變成死信(dead message:消息在該隊列中沒有消費者去消費)之後,它就會被重新publish到另一個Exchange中,這個Ex

原创 RabbitMQ:Return消息機制

Return Listener        Return Listener 通常用於吃力一些不可路由的消息。例如:在某些情況下,在我們發送消息的時候當前指的Exchange不存在或者指定的routing key找不到,這個時候我們

原创 RabbitMQ:消費端限流

什麼是消費端限流        當我們的RabbitMQ服務器上有大量未處理的消息時,消費端的客戶端可能無法同時處理大量的消息,這時候就要對消費端進行限流,同時只接受一定數量的消息。 如何限流        RabbitMQ提

原创 RabbitMQ:生產端的可靠性投遞解決方案

消息如何保證100%的投遞成功? 什麼是生產端的可靠性投遞? 保障消息的成功發出; 保障MQ節點的成功接收; 發送端收到MQ節點(Broker)確認應答; 完善消息補償機制; 生產端可靠性投遞常見解決方案 消息落庫,對消息狀態進

原创 RabbotMQ: Exchange四種模式介紹

Exchange是什麼        Exchange就是交換機,用於接收消息,並將根據路由鍵(routing key)將詳細轉發到它所綁定的消息隊列(queue); Exchange屬性 name:Exchange名稱; t