当前位置: 代码迷 >> Java Web开发 >> 关于 怎么在SpringMVC中获取request对象 的疑问
  详细解决方案

关于 怎么在SpringMVC中获取request对象 的疑问

热度:1109   发布时间:2016-04-13 22:10:21.0
关于 如何在SpringMVC中获取request对象 的疑问
如何在SpringMVC中获取request对象?
我看到有一种方式为通过注入。
    @Autowired  
    private  HttpServletRequest request;  

当我看到这种形式时,首先想当的是线程安全问题,但我实际测试,发现是线程安全的,不知道这个是怎么实现的?或者是我的结论有什么问题。还请多多指导
------解决思路----------------------
ThreadLocal 

ThreadLocal gives you the opportunity to use the variables without explicitly passing them down through the method invocation chain. Which could be useful on certain occasions. But you guys out there who have created a n-layer architecture to abstract away different communication interfaces. And then grab HttpServletRequest from ThreadLocals in your DAO objects … what were you smoking when making this decision? It took a few hours and a second pair of eyes when we were digging up this particular case. But anyhow – be careful when using the powers of globalization. You end up creating unexpected dependencies within your code. And as you might remember – this is not a wise thing to do.

------解决思路----------------------
楼主的疑问不用担心,线程安全除了同步以外还有一种方式叫做线程级别变量,通过ThreadLocal对象来封装,你可以参考这个对象的访问。
  相关解决方案