public class DataSourceSelector { /**
* 线程threadlocal
*/
private static ThreadLocal<String> dbLookCxt = new ThreadLocal<>(); public static final String _DEFAULT_DB = MultiDruidDataSources.PREFIX+".default"; public static String getDataSourceKey() {
String db = dbLookCxt.get();
if (db == null) {
db = _DEFAULT_DB;
}
return db;
} public static void select(String dbKey) {
dbLookCxt.set(dbKey);
} public static void remove() {
dbLookCxt.remove();
} }

以及用于

public class TransactionContextHolder {

    public static final String TRACE_ID = "traceId";

    private static ThreadLocal<HashMap<String, String>> locals = new ThreadLocal<>();

    public static void set(HashMap<String, String> data){
HashMap<String, String> map = locals.get();
if (map == null) {
locals.set(data);
} else {
map.putAll(data);
}
if (data.containsKey(TRACE_ID)) {
String traceIdValue = data.get(TRACE_ID);
MDC.put("traceId", traceIdValue);
} }
public static String get(String key) {
return get().get(key);
} public static void set(String key, String value){
if (value != null && key != null){
get().put(key, value);
if (TRACE_ID.equals(key)) {
MDC.put("traceId", value);
}
}
} public static HashMap<String, String> get() { HashMap<String, String> map = locals.get();
if (map == null) {
map = new HashMap<>();
set(map);
}
return map;
} public static void remove(){
locals.remove();
MDC.remove("traceId");
} public static void remove(String key) {
get().remove(key);
} public static void copy(Map<String, String> parentContext) {
if (parentContext != null && parentContext.size() > 0) {
get().putAll(parentContext);
}
}
}

  

最新文章

  1. .NET LINQ 数据排序
  2. sql语句修改字段长度
  3. 使用Keil uVision下载hex文件
  4. eclipse配置ros cakin编译环境
  5. javascript实现颜色渐变
  6. 3种SQL语句分页写法
  7. linux cmd: ps
  8. js--事件对象的理解1
  9. 理解oauth2.0【转载】
  10. [POI2015]KIN[线段树]
  11. [SDOI2013]森林 主席树+启发式合并
  12. LeetCode算法题-Nim Game(Java实现)
  13. Docker最全教程——从理论到实战
  14. Intellij IDEA注册激活破解
  15. WebView与 JS 交互方式
  16. ABAP-FI常用BAPI
  17. zabbix 监控报警详细邮件内容
  18. 用crash来分析一下proc的文件访问
  19. MySQL 存储过程/游标/事务
  20. 4-13 Webpacker-React.js; 用React做一个下拉表格的功能: &lt;详解&gt;

热门文章

  1. iview-cli 设置跨域代理服务器
  2. 电商项目maven框架搭建引入dubbo配置文件报错
  3. 数据驱动之 python + requests + Excel
  4. C#中定时任务被阻塞问题
  5. Ubuntu安装微信/企业微信
  6. [3] ScanRefer论文精读 3DVisual Grounding开山之作
  7. 51电子-STC89C51开发板:程序烧录(刷写) 到 IC 设置
  8. 免费赠票 | Cloud Ace 受邀参加 GTC2022 全球流量大会,助力中国企业扬帆出海!
  9. 00_learn_python
  10. API对象--Ingress(chrono《kubernetes入门实战课》笔记整理)