SpringBoot 中,默认注入的对象是单例对象,那么,我们如果注入一个 HttpServletRequest,会有问题吗?因为每次请求,Request 是不同的,用一个单例去获取这个请求肯定是不对的。
事实上,Spring 容器很聪明的帮我们把各个 HttpServletRequest 对象隔离开来,并不是真的一个单例,而是通过包裹类 ServletRequestAttributes,将 HttpServletRequest 纳入其中。这个包裹对象绑定到了 ThreadLocal 中,并且通过 RequestContextHolder.currentRequestAttributes() 获得。
我们也可以通过下面语句获得当前 HttpServletRequest。
HttpServletRequest curRequest =
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
所以不用担心这个问题,放心大胆的用吧。
原创文章,转载请注明出处!http://www.javathings.top/httpservletrequest使用autowired注解会有问题吗?/
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有