假设我有一个Spring控制器.
@RequestMappin("/path")
public MyController {
}
Run Code Online (Sandbox Code Playgroud)
如上所述,控制器的默认范围是Singleton.我知道我可以在REQUEST范围bean中自动发送请求,但是,如果我尝试自动发送请求,那么
@RequestMappin("/path")
public MyController {
@Autowired
private HttpServletRequest request;
}
Run Code Online (Sandbox Code Playgroud)
它仍然有效,并为每个请求我得到适当的请求对象.这是否意味着无论范围是否请求,autowire都能正常工作?
当弹簧基于web的应用白手起家,它将注册类型的豆ServletRequest,ServletResponse,HttpSession,WebRequest的支持ThreadLocal的变量。因此,每当您请求上述四种中的一种时,实际值将是绑定到当前线程的实际存储的 ThreadLocal 变量。
您可以在@Autowired HttpServletRequest 中找到@Autowired HttpServletRequest 的详细实现机制
| 归档时间: |
|
| 查看次数: |
6510 次 |
| 最近记录: |