如何保证在render之后成功清除ThreadLocal

public class EInterceptorClient implements Interceptor {
    public void intercept(Invocation inv) {
        try {
            ClientTool.setTreadLocalClient(client);
            inv.invoke();
        }finally{
            //ClientTool.removeTreadLocalClient();
        }
    }
}

如果将注释取消是没问题的

但如果需要在模板中使用这个线程对象,就不能在Interceptor里清除

只能在render完成之后进行remove

我知道可以通过自定义render来实现,但情况有点多:TemplateRender、RedirectRender、JsonRender ... 挨个@Override实在太累

应该还有别的办法?

评论区

JFinal

2017-06-18 10:09

用一个 Handler 来做就可以了,记得搞定后回来分享一下

netwild

2017-06-18 12:27

@JFinal 我怎么就没想到Handler呢,感谢老大提点!
已经分享:http://www.jfinal.com/share/320

热门反馈

扫码入社