SpringMVC 在controller层中注入成员变量request,是否线程安全

栏目: Java · 发布时间: 7年前

内容简介:上述代码是觉见的代码,为了使用方便,使用Autowire注入成员变量request后,直接在controller的方法中使用request。由于controller默认是单例的,那么是否会有线程安全问题呢?在框架初始IOC的时候是创建了一个Request对象的代理类,从而完成了初始注入,代理类负责从ThreadLocal中获取真正的Request对象并调用相应的方法,每次调用代理request的方法都相当于调用了该次请求真正的request对象的方法,因此不产生线程安全的问题。

阅读更多

@RestController
public class MyController{
 
    @Autowire
    HttpServletRequest request;
    
    @RequestMapping("/test")
    public String test(){
        String param = request.getParameter("param");
        //request.getHeader("uid");
        return param;
    }
}

上述代码是觉见的代码,为了使用方便,使用Autowire注入成员变量request后,直接在controller的方法中使用request。由于controller默认是单例的,那么是否会有线程安全问题呢?

在框架初始IOC的时候是创建了一个Request对象的代理类,从而完成了初始注入,代理类负责从ThreadLocal中获取真正的Request对象并调用相应的方法,每次调用代理request的方法都相当于调用了该次请求真正的request对象的方法,因此不产生线程安全的问题。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

工程问题C++语言求解

工程问题C++语言求解

Delores M.Etter、Jeanine A.Ingber / 冯力、周凯 / 机械工业出版社 / 2014-8 / 79元

本书介绍了如何利用ANSIC++编程语言以基于对象的编程方式来解决工程问题。书中引用了大量来自于不同工程、科学和计算机科学领域的示例,是一本理论和实践结合紧密的教材。针对C++基本语法的各个部分,由浅入深地进行讲解。每讲解一部分基础知识,同时会结合多个相关实例,实例内容详实,紧贴所讲内容,使读者能够立刻对所学知识进行练习,实战性强。一起来看看 《工程问题C++语言求解》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具