工作中问题总结
文章平均质量分 61
工作中遇到的问题总结
苏克开飞机
这个作者很懒,什么都没留下…
展开
-
从Tomcat迁移到Netty:filter中塞入的ThreadLocal值却无法获取值了
这就意味着,如果Filter在IO线程中执行,那么在后续的业务逻辑处理线程中就无法获取到在Filter中设置的ThreadLocal值。由于Interceptor是在处理请求的业务线程中执行的,因此我们可以确保在后续的业务逻辑中能够获取到ThreadLocal的值。这是因为Interceptor是在Spring的上下文中运行的,因此它始终在和业务处理逻辑相同的线程中执行。在这个示例中,我们从请求中获取User对象,然后将其存储在ThreadLocal中,以供后续的请求处理逻辑使用。原创 2023-07-07 23:27:56 · 239 阅读 · 1 评论 -
工作中Filter获取了一次HttpServletRequest做其他处理,导致业务流程的@RequestBody无法获取数据
然后,我重写了getInputStream()和getReader()方法,使它们返回一个新的输入流或读取器,这些输入流或读取器是从存储请求体的字节数组中创建的。这是因为这两个方法返回的输入流或读取器是从HTTP请求的输入流创建的,而HTTP请求的输入流是一个只能向前移动的流,不支持回退或重置。这些输入流或读取器是从存储请求体的字节数组中创建的,而不是从原始的HTTP请求输入流中创建的。这样,我们就可以在后续的处理中多次读取请求体,而不会受到HTTP请求输入流只能被读取一次的限制。在拦截器中,我这样使用。原创 2023-07-08 13:52:36 · 433 阅读 · 1 评论