【发布时间】:2017-06-02 19:43:56
【问题描述】:
我很难找到一个可靠的答案。我知道控制器的作用域是单例并实例化一次,对于控制器类中的任何成员变量也是如此。
我的问题:传入的请求对象是每个请求的新实例吗?假设 Jackson 将 JSON 请求正文映射到请求对象。
例如:
@RequestMapping(path = "/dosomething", method = POST)
@ResponseBody
public SomeObject doSomething(@RequestBody SomeObject someObject) {
// code here
return someObject;
}
我想处理/存储或以其他方式更改 someObject 的状态,但不确定在处理许多请求时有多安全,或者我是否需要显式实例化从入站请求对象深度复制的新 SomeObject。
感谢您的帮助!
【问题讨论】:
-
修改请求参数是安全的。但是,如果 Spring 是否会重用该实例,则不必担心(然而,这不太可能,因为池化开销比生成新值对象要大得多)。
标签: java spring-mvc jackson