我已经用过了,效果很好。但不幸的是,我没有找到任何官方文件提及此功能。
这是基于我的理解的解释,我的理解是通过运行具有不同标头/有效负载等的多个请求来调试代码:
无论是现场自动装配还是通过构造函数自动装配,
servletRequest都像Proxy对象一样,将调用委派给 Current
HttpServletRequest ,每个请求均不同。因此,即使通过构造函数将其注入到Singleton RestController中
,它仍将为每个新请求将调用委派给相应的HttpServletRequest。这利用AutowireUtils.ObjectFactoryDelegatingInvocationHandler访问当前的HttpServletRequest对象。它的Java文档还说
Reflective InvocationHandler可以延迟访问 当前目标对象 。
因此,即使自动连接的Proxy对象对于所有请求始终都是相同的,将调用委派给其的基础目标对象是每个请求的当前HttpServletRequest对象。
HttpServletRequest currentRequest = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
注意: 由于此说明是基于我的理解,因此,如果有人知道,请共享任何官方文档。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)