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 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。