原创 connection.setRequestProperty()設置無效
問題背景 項目中碰到調用其他廠家的接口,廠家不僅提供了接口文檔還提供了調用基類,但是使用廠家提供的基類調用其服務卻失敗。看了源碼之後發現是connection.setRequestProperty("host","xxxx")沒有
原创 不要再寫if...else了,優雅的處理
使用場景 項目中出現大量的if…else的判斷,根據傳參不同做不同的實現,這樣就會顯的代碼很臃腫,耦合性高。 消除if…else的方法有很多,包括命令模式、規則引擎、簡單工廠等。接下來會介紹的一種方法是使用枚舉來處理這樣的大量判斷
原创 3分鐘瞭解重排序以及synchronized和volatile的原理
重排序對多線程的影響 //重排序對多線程的影響 class ReorderExample { int a = 0; boolean flag = false; publi
原创 生成數據字典,一個存儲過程搞定
1、創建存儲過程,下面的存儲過程是以mysql數據庫的語法寫的,其中只查詢出了tb_用戶管理開頭的表,可以根據自己的需求適當的修改: DELIMITER $$ USE `dbname`$$ DROP PROCEDURE IF
原创 最全最詳細的離線安裝YApi教程
官網教程 https://hellosean1025.github.io/yapi/devops/index.html 離線安裝包 鏈接:https://pan.baidu.com/s/1SuE4sMFIL19m0bhrGWkwD
原创 linux 下載安裝ElasticSearch 6.6.0
ElasticSearch 6.6.0 下載地址 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz 百度雲下載
原创 jenkins+github+gradle+springboot自動構建流水線圖解教程
1.準備一個springboot項目,構建工具採用的是gradle 2.安裝gradle 百度雲下載地址: (1)解壓 [root@test local]# unzip gradle-4.7-all.zip (2)設置環境變量
原创 設計模式(創建型--抽象工廠模式)
對比工廠方法模式,多了不同的產品。 缺點:增加產品,需要增加多個類,還需要修改三個工廠類 改進:利用簡單工廠替代三個工廠類,在利用反射和配置文件實現動態的改變傳值。
原创 設計模式(創建型--單例模式)
實現單例模式的5種方式: 1.餓漢式單例(立即加載方式) public class Singleton{ private Singleton(){}; private static Singleton single = ne
原创 設計模式(結構型--代理模式)
代理類和真實類都繼承抽象類,實現其接口,代理類裏面有真實類的引用,實現也是調用真實類是實現。 使用場景: 1.遠程代理 webservice就是代理模式,生成的文件就是代理。 2.虛擬代理 根據需要創建開銷很大的對
原创 設計模式(結構型--裝飾模式)
子類覆蓋父類的方法時,可以在父類原始的實現前面或者後面動態的添加功能。 使用場景:需要在舊功能的基礎上動態的添加新功能時。 可以很好把核心職能和裝飾功能區分開,還可以去除相關類中重複的裝飾邏輯。
原创 設計模式(結構型--適配器模式)
包裝出一個可以給客戶調用的接口。 使用場景:希望複用一些現存的類,但是接口又與複用環境不一致的情況。
原创 設計模式(行爲型--策略模式)
Context類有個屬性是Strategy,通過構造函數,需要哪個具體的策略就傳入哪個具體的實現類。 優點:封裝了變化,具體的實現策略的類可以單獨修改測試。 使用場景:不同時間應用不同的業務規則。 通過簡單工廠和策略模式的結合
原创 設計模式(UML類圖)
UML類圖 UML類圖總結總結: 類圖裏面 “+” 表示 public “-” 表示private “#” 表示 protected 類與線條的關係:前面(外面) 指向 後面(裏面) 繼承: 空心三角形+實線 實現接
原创 設計模式(創建型--工廠方法模式)
將工廠類也進行抽象,多個子類factory繼承父類factory,同時實現父類的實例化子類bean。