服務上下文建造者模式構造實踐

2021-07-05 13:30:53 字數 1507 閱讀 6975

系統服務處理過程通常會有很多透傳引數,每次請求實際使用到的引數不盡相同。將透傳引數以服務處理上下文的形式儲存在threadlocal中,可以簡化**內部邏輯,避免引數的顯示傳遞。服務處理上下文包含所有需要的引數,通過建造者模式在每次請求處理前只需構造當次需要的引數。

public class serviceprocesscontext

/*** 返回被建造的上下文

** @return 被建造的上下文

*/public serviceprocesscontext build()

/*** 為上下文構造請求時間

* * @param requesttime 請求時間

* @return 建造器

*/public builder setrequesttime(date requesttime)

/*** 為上下文構造請求id

* * @param requestid 請求id

* @return 建造器

*/public builder setrequestid(string requestid)

}/**

* getter method for property requestid.

* * @return property value of requestid

*/public string getrequestid()

/*** getter method for property requesttime.

* * @return property value of requesttime

*/public date getrequesttime()

}public class contextholder

throw new servicebizexception(commonerror.service_context_not_exist);

}/**

* 檢查當前是否存在上下文

** @return true如果當前是否存在上下文,否則false

*/public static boolean exists()

/*** 設定上下文

** @param context 上下文

*/public static void set(serviceprocesscontext context)

/*** 清理上下文

*/public static void clear()

}構造和使用示例:

serviceprocesscontext serviceprocesscontextt =     new serviceprocesscontext.builder().setrequestid("requestid").setrequesttime(new date()).build();

contextholder.set(serviceprocesscontextt);

contextholder.get()

contextholder.clear()

Spring Cloud應用程式上下文服務

spring boot對於如何使用spring構建應用程式有乙個看法 例如它具有常規配置檔案的常規位置,以及用於常見管理和監視任務的端點。spring cloud建立在此之上,並新增了一些可能系統中所有元件將使用或偶爾需要的功能。引導應用程式上下文 乙個spring cloud應用程式通過建立乙個 ...

策略模式 上下文與內部類的思考

策略模式一直程式開發中,最常用的模式之一 它的功能就是定義了一系列的演算法,這些演算法定義著公共的介面,所以它們之間可以相互替換。這使得我們在開發過程中,若有新的策略需要擴充套件時,程式變的很容易開發。下面是策略模式的結構示意圖 從結構示意圖中,我們能清楚的感受到,策略模式的巧妙之處就是將變化的東西...

池,狀態與無狀態,伺服器上下文

池 pooling 池化的伺服器物件提前被構造和初如化 能限制例項的個數 最小值,最大值 例項能被多個會話共享,用來支援更多使用者的請求 當返回池中的時候例項必須復原 池化的服務可以讓web應用程式在使用者之間共享 非池化的物件每次重新構造和初始化,並在返回伺服器時析構 能限制最大例項數 每個會話使...