您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring:如何将HttpServletRequest注入到请求范围的bean中?

Spring:如何将HttpServletRequest注入到请求范围的bean中?

可以将请求范围的Bean与请求对象自动连接

private @Autowired HttpServletRequest request;

Spring 通过type 的包装器对象公开当前HttpServletRequest对象(以及当前HttpSession对象)。此包装对象绑定到ThreadLocal,可以通过调用方法获得。ServletRequestAttributesstaticRequestContextHolder.currentRequestAttributes()

ServletRequestAttributes提供getRequest()获取当前请求,getSession()获取当前会话的方法以及获取存储在两个范围中的属性的其他方法。以下代码虽然有点难看,但应该可以在应用程序中的任何位置为你提供当前的请求对象:

HttpServletRequest curRequest = 
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())
.getRequest();

请注意,该RequestContextHolder.currentRequestAttributes()方法返回一个接口,并且需要进行类型转换以ServletRequestAttributes实现该接口。

Jave 2022/1/1 18:21:17 有335人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶