springmvc中controller注入了service后为什么还是线程安全的?

都说springmvc是线程安全的。我知道无状态的对象一定是线程安全的。但是Controller中注入了Service后,不就变成了有状态的对象了,那它还是线程安全的吗?

//无状态
public class UserController {
    }
    
//有状态
public class UserController {
    int a;
}

//?????

public class UserController {
    @AutoWired
    private UserService userService;
    
}

希望懂的人给小弟解惑。谢谢!
补充:我知道ThreadLocal和单例多例(scope=prototype)的相关知识,只想知道上面我描述的有状态和无状态的情况。


HUH函数
浏览 3264回答 2
2回答

烙印99

你没搞清楚线程安全是什么意思。userService本身并不是线程安全的,你在userController里修改userService吗?只是调用userService里的方法吧?方法都是线程安全的,多线程调用一个实例的方法,会在内存中复制变量,所以只要你不在userConstroller里修改userService这个实例就没问题。

米脂

@Controller 默认实现的单例模式
打开App,查看更多内容
随时随地看视频慕课网APP