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对象的方法,因此不产生线程安全的问题。


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

查看所有标签

猜你喜欢:

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

数据结构基础

数据结构基础

[美]Ellis Horowitz 霍罗维兹 / 朱仲涛 / 清华大学出版社 / 2009-3 / 49.00元

《数据结构基础(C语言版)(第2版)》是最经典数据结构教材的最新版本,国内外大多数的同类教材都是以《数据结构基础(C语言版)(第2版)》为蓝本编写而来的。《数据结构基础(C语言版)(第2版)》用C作为描述语言,全面而生动地介绍了数据结构的有关知识,如数组、栈、队列、链表、树和图,以及构成所有软件基础的排序散列技术。此外,《数据结构基础(C语言版)(第2版)》还介绍了各种高级或特殊数据结构,如优先级......一起来看看 《数据结构基础》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器