Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
武汉红喜
whatsmars
提交
6d702c2a
W
whatsmars
项目概览
武汉红喜
/
whatsmars
通知
3
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
whatsmars
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
6d702c2a
编写于
8月 16, 2020
作者:
武汉红喜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
MDCTool
上级
7b0a613c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
133 addition
and
0 deletion
+133
-0
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/mdc/MDCCallable.java
...ain/java/org/hongxi/whatsmars/common/mdc/MDCCallable.java
+33
-0
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/mdc/MDCRunnable.java
...ain/java/org/hongxi/whatsmars/common/mdc/MDCRunnable.java
+32
-0
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/mdc/MDCSupplier.java
...ain/java/org/hongxi/whatsmars/common/mdc/MDCSupplier.java
+33
-0
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/mdc/MDCTool.java
...rc/main/java/org/hongxi/whatsmars/common/mdc/MDCTool.java
+35
-0
未找到文件。
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/mdc/MDCCallable.java
0 → 100644
浏览文件 @
6d702c2a
package
org.hongxi.whatsmars.common.mdc
;
import
org.slf4j.MDC
;
import
java.util.Map
;
import
java.util.concurrent.Callable
;
/**
* Created by shenhongxi on 2020/8/16.
*/
public
class
MDCCallable
<
V
>
implements
Callable
<
V
>
{
private
final
Callable
<
V
>
callable
;
private
transient
final
Map
<
String
,
String
>
_cm
=
MDC
.
getCopyOfContextMap
();
public
MDCCallable
(
Callable
<
V
>
callable
)
{
this
.
callable
=
callable
;
}
@Override
public
V
call
()
throws
Exception
{
if
(
_cm
!=
null
)
{
MDC
.
setContextMap
(
_cm
);
}
try
{
return
callable
.
call
();
}
finally
{
MDC
.
clear
();
}
}
}
\ No newline at end of file
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/mdc/MDCRunnable.java
0 → 100644
浏览文件 @
6d702c2a
package
org.hongxi.whatsmars.common.mdc
;
import
org.slf4j.MDC
;
import
java.util.Map
;
/**
* Created by shenhongxi on 2020/8/16.
*/
public
class
MDCRunnable
implements
Runnable
{
private
final
Runnable
runnable
;
private
transient
final
Map
<
String
,
String
>
_cm
=
MDC
.
getCopyOfContextMap
();
public
MDCRunnable
(
Runnable
runnable
)
{
this
.
runnable
=
runnable
;
}
@Override
public
void
run
()
{
if
(
_cm
!=
null
)
{
MDC
.
setContextMap
(
_cm
);
}
try
{
runnable
.
run
();
}
finally
{
MDC
.
clear
();
}
}
}
\ No newline at end of file
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/mdc/MDCSupplier.java
0 → 100644
浏览文件 @
6d702c2a
package
org.hongxi.whatsmars.common.mdc
;
import
org.slf4j.MDC
;
import
java.util.Map
;
import
java.util.function.Supplier
;
/**
* Created by shenhongxi on 2020/8/16.
*/
public
class
MDCSupplier
<
T
>
implements
Supplier
<
T
>
{
private
transient
final
Map
<
String
,
String
>
_cm
=
MDC
.
getCopyOfContextMap
();
private
final
Supplier
<
T
>
supplier
;
public
MDCSupplier
(
Supplier
<
T
>
supplier
)
{
this
.
supplier
=
supplier
;
}
@Override
public
T
get
()
{
if
(
_cm
!=
null
)
{
MDC
.
setContextMap
(
_cm
);
}
try
{
return
supplier
.
get
();
}
finally
{
MDC
.
clear
();
}
}
}
\ No newline at end of file
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/mdc/MDCTool.java
0 → 100644
浏览文件 @
6d702c2a
package
org.hongxi.whatsmars.common.mdc
;
import
java.util.concurrent.Callable
;
import
java.util.function.Consumer
;
import
java.util.function.Supplier
;
/**
* Created by shenhongxi on 2020/8/16.
*/
public
final
class
MDCTool
{
public
static
<
T
>
MDCSupplier
<
T
>
supplier
(
Supplier
<
T
>
supplier
)
{
return
new
MDCSupplier
<>(
supplier
);
}
public
static
MDCRunnable
runnable
(
Runnable
runnable
)
{
return
new
MDCRunnable
(
runnable
);
}
public
static
MDCRunnable
runnable
(
Consumer
<
Void
>
consumer
)
{
return
new
MDCRunnable
(()
->
{
consumer
.
accept
(
null
);
});
}
public
static
<
V
>
MDCCallable
<
V
>
callable
(
Callable
<
V
>
callable
)
{
return
new
MDCCallable
<>(
callable
);
}
public
static
<
V
>
MDCCallable
<
V
>
callable
(
Supplier
<
V
>
supplier
)
{
return
new
MDCCallable
<>(()
->
supplier
.
get
());
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录