原创 什麼是職責鏈模式(Chain Of Responsibility)?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 意圖 請求與處理者的解耦合。請求一次,處理者會根據一定順序依次調用,直到處理完畢。 類圖 實例 // 處理者 interface H

原创 HotSpot VM有什麼特性?

世界上並沒有完美的程序,但我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 熱點代碼探測 通過執行計數器(兩個,方法的和循環的)找到最有編譯價值的代碼(如果一個方法被頻繁調用或方法中有效循環次數很多,達到計數器的閾

原创 《keycloak9完整官方文檔-1-keycloak服務器的安裝和配置》

翻譯的官方文檔,由於格式問題,發佈不太方便,這是我的有道雲筆記, 鏈接地址:《keycloak9完整官方文檔-1-keycloak服務器的安裝和配置》

原创 適配器模式(Adapter)與橋接模式(Bridge)有什麼區別?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 從意圖上看 適配器是爲了複用已有接口的功能,而通過適配將已有接口功能引入到所需接口的一種模式,目的是能夠結合。 橋接模式是爲了實現兩個接

原创 如何設計單點登錄SSO?

架構圖 流程圖 由於數據模型比較簡單,在這裏不多做敘述,但是有一點需要注意,在SSO Server中,單點登錄的入口與SSO Server後臺管理的登錄並不是一個入口,而且也不是一個用戶登錄系統,要不然單點的登錄登出會和本地

原创 哪裏有阿里的maven倉庫?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 <repositories> <repository> <id>aliyun</id> <name>

原创 什麼是橋接模式(Bridge)?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 意圖 搭建一個接口互通的平臺(橋),以便接口之間實現多維多樣性的組合關係。 類圖 實例 interface Sub{ Str

原创 什麼是觀察者模式(Observer)?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 意圖 在我看來就是一個事件通知機制,一個對象的狀態發生變化,會通過觀察者告訴給其他對象 類圖 實例 // 觀察者 interface

原创 什麼是中介者模式(Mediator)?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 意圖 定義一個對象,封裝一組對象的交互,降低對象之間的耦合度,對象之間無需顯示引用,並且可以單獨改變對象的交互方式。 類圖 實例 /

原创 可自定義的SSO單點登錄高可擴展設計方案

我們通常所使用的的單點登陸工具CAS以及Keycloak等,可以在一定的環境下做到多個應用統一登錄的功能,確實提供了不少的方便,但是如果是面臨多個單點登錄工具以及本地登錄的結合將如何對接呢,大公司或許只有一個穩定的單點登錄平臺,但是對於小

原创 什麼是單例模式(Singleton)?有哪幾種線程安全的實現方式?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 意圖 保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。節省內存。用途:計數器,全局唯一ID、連接等。 類圖 實例 實例中只展

原创 什麼是外觀模式(Facade)?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 意圖 對外提供統一接口,屏蔽內部負複雜的實現流程,例如:springMVC的 DAO Service Controller。 實例 /

原创 如何設計單點登錄代理SSOP?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 架構圖 以service作爲外部SSO的代理,以control作爲轉發中心,實現高可擴展的SSOP。 流程圖 3.數據庫建模

原创 什麼是合成模式(Composite)?

世界上並沒有完美的程序,但我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 意圖 保證客戶端調用單對象與組合對象的一致性。適用:具有相同功能的樹形母子機構。 類圖 實例 public interface Com

原创 如何創建一個spring項目?

世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。 創建一個maven項目 添加依賴 <dependencies> <dependency> <