关于拦截器中清理资源问题

来源:9-1 用户身份登录统一拦截

hllcve

2021-08-03

这个判断null != AccessContext.getLoginUserInfo()是不是有点多余,既然把清理资源的工作交给了拦截器,就不会在业务代码里主动调用AccessContext.clearLoginUserInfo(),故到这个方法里一定不为空,退一步讲即使在业务代码里主动调用了AccessContext.clearLoginUserInfo(),在这里即使没有这个判断也不会有NPE等问题吧

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
                            Object handler, Exception ex) throws Exception {

    if (null != AccessContext.getLoginUserInfo()) {
        AccessContext.clearLoginUserInfo();
    }
}
写回答

2回答

张勤一

2021-08-04

同学你好:

    多去判断下并不会影响性能,而且也不会有什么问题。当然,如果你觉得确实是没有必要,删掉 if 按照自己的想法来就可以了。

2
0

慕仔4607872

2021-10-07

老师的前置拦截器有一个判断白名单不需要保存登录身份信息,如果这不判断会报空指针异常

0
0

Spring Cloud / Alibaba 微服务架构实战

从架构设计到开发实践,手把手实现

1210 学习 · 674 问题

查看课程