我编写了这个实用程序类来保存Spring MVC应用程序中的临时数据:
public abstract class FooUtil {
private static final ThreadLocal<String> threadFoo = new ThreadLocal<String>();
public static String getFooId(){
return threadFoo.get();
}
public static void setFooId(String fooId){
threadFoo.set(fooId);
}
public static void removeFooId(){
threadFoo.remove();
}
}
所以我打电话给FooUtil.setFooId("foo")
。
但是当我稍后致电FooUtil.getFooId()
时,它始终会返回null
。
我需要构造函数吗?或者这不应该是一个抽象类?我不知道。
答案 0 :(得分:3)
您需要从与setFooId相同的线程调用getFooId。这样你就可以得到相同的结果。 我会在设置时记录线程名称并获取值以查看它们是否相同。