系統服務處理過程通常會有很多透傳引數,每次請求實際使用到的引數不盡相同。將透傳引數以服務處理上下文的形式儲存在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應用程式在使用者之間共享 非池化的物件每次重新構造和初始化,並在返回伺服器時析構 能限制最大例項數 每個會話使...