2

我编写了这个实用程序类来在 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

我需要构造函数吗?或者也许这不应该是一个抽象类?我不知道。

4

1 回答 1

3

您需要从与 setFooId 相同的线程调用 getFooId。这样你会得到相同的结果。当您设置和获取值时,我会记录线程名称以查看它们是否相同。

于 2011-09-04T20:10:22.050 回答