@Autowired HttpServletResponse
我正在寻找一种自动接线的方法HttpServletResponse
。开箱即用的弹簧无法使用,但是我找到了这个描述。这行得通,但是有点烦人,因为那个春天显然有一种机制可以使对象请求的作用域范围(即HttpServletRequest
),并且这似乎是一个扎根于顶部的技巧。
有没有办法钩住spring所用的相同机制HttpServletRequest
?而且,您知道spring团队为什么决定只使HttpServletRequest
自动装配功能(并排除在外HttpServletResponse
)吗?
回答:
也许有一些解决方法,但这并不是很明显,因为这不是它的本意。Spring
MVC旨在具有单例@Controller
bean,@RequestMapping
这些bean提供以请求和响应为参数的方法。
如果您需要在其他地方(服务层)进行响应-请勿这样做。响应不应超出网络(控制器)层。
要注入响应,您需要:-将响应存储在ThreadLocal
-中以使工厂bean返回当前响应
关于您显示的示例代码-我不确定您是否不需要工厂bean返回代理(实现HttpServletResponse
),而代理又返回当前响应。而且它变得相当复杂。
但最终-您不应该这样做。如果需要拦截多个控制器调用,请使用mvc-
interceptor。如果确实需要使用方面,则可以将响应作为参数传递给截获的方法来获取响应。
以上是 @Autowired HttpServletResponse 的全部内容, 来源链接: utcz.com/qa/410246.html