【发布时间】:2021-06-07 15:33:36
【问题描述】:
我想在线程内的方法之间传递对象而不使用方法签名。
例子:
public class Controller {
@GET
public void requestController() {
// set user data in the controller currentThread
}
}
public class Service {
public void serviceMethod() {
// get user data in the service method from currentThread
}
}
由于Controller 和Service 在同一个线程中,我应该能够访问在Service 中设置的Controller 中的对象。
MDC 使用 MDC.put 和 MDC.get 确实遵循相同的方法,但我不确定它使用哪种模式。
【问题讨论】:
-
您正在寻找 docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html 。但是要小心使用,如果操作不当很容易导致内存泄漏
-
@codeflush.dev 您能否详细说明内存泄漏部分,它会产生什么问题?另外,您能否添加一个
ThreadLocal的示例?
标签: java dropwizard mdc