开发者社区> 问答> 正文

OSChinaFilter和RequestContext配置使用问题403.10 禁止访问:配置无效

关于OSChina的OSChinaFilter和RequestContext配置使用问题 最近看了“代码分享”中的2篇代码: “OSChina 中一个非常重要的类——RequestContext” (这里)和 “OSChina 的全局过滤器源码” (这里) 感觉非常的好,特别是 RequestContext 类的设计,但同时也有一些不明白的地方,在这里提出来,向大家请教: 在ControllerFilter中初始化了 RequestContext ,即:每访问一个URL,RequestContext就会被初始化一次,而在RequestContext中,将其对象保存在 ThreadLocal中,我不明白为什么要这么做:
1. 为什么要使用Filter每过滤一个URL就初始化一次RequestContext?为什么不是只初始化一次呢?
2. 将RequestContext保存在 ThreadLocal中的用意是什么?使用ThreadLocal有很么好处吗?
我很想弄清楚这个设计思想,呵呵

展开
收起
kun坤 2020-05-28 13:25:51 401 0
1 条回答
写回答
取消 提交回答
  • RequestContext 从字面上的意思是请求上下文,也就是说是跟着当前请求走的。 不同的请求应该有不同的上下文,包括参数啊、Session、用户等等 因此 RequestContext 必须是每访问一个URL就会初始化一个新的实例 第二: 保存在 ThreadLocal 的目的是为了不需要在各个层(Controller\DAO)之间传递 RequestContext 实例。 关于线程本地的一些代码请看这里######谢谢红薯大哥,明白了,呵呵!######现在spring的bean默认都是单例的了,红薯可以考虑一下这要弄哦

    2020-05-28 16:18:43
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载