diff --git a/src/main/java/com/jfinal/weixin/sdk/api/ApiConfigKit.java b/src/main/java/com/jfinal/weixin/sdk/api/ApiConfigKit.java index d0a9d8df456795a54ae38b72d86635455e413700..fca05cd633491c7e3c52e576b20e75af39432ba5 100644 --- a/src/main/java/com/jfinal/weixin/sdk/api/ApiConfigKit.java +++ b/src/main/java/com/jfinal/weixin/sdk/api/ApiConfigKit.java @@ -19,6 +19,7 @@ public class ApiConfigKit { private static final Log log = Log.getLog(ApiConfigKit.class); private static final ThreadLocal TL = new ThreadLocal(); + private static final ThreadLocal TL_API_CONFIG = new ThreadLocal(); private static final Map CFG_MAP = new ConcurrentHashMap(); private static final String DEFAULT_CFG_KEY = "_default_cfg_key_"; @@ -96,6 +97,15 @@ public class ApiConfigKit { TL.remove(); } + public static void setThreadLocalApiConfig(ApiConfig config) { + TL_API_CONFIG.set(config); + } + + public static void removeThreadLocalApiConfig() { + TL_API_CONFIG.remove(); + } + + public static String getAppId() { String appId = TL.get(); if (StrKit.isBlank(appId)) { @@ -105,6 +115,10 @@ public class ApiConfigKit { } public static ApiConfig getApiConfig() { + ApiConfig config = TL_API_CONFIG.get(); + if (config != null){ + return config; + } String appId = getAppId(); return getApiConfig(appId); }