原创 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。