我无法找到一个坚实的答案。我知道控制器的范围是singleton并实例化一次,对于控制器类中的任何成员变量也是如此。在Spring REST中,请求对象是在每个请求上实例化的吗?
我的问题:传入的请求对象是每个请求上的新实例吗?假设Jackson正在将JSON请求主体映射到请求对象。
例如:
@RequestMapping(path = "/dosomething", method = POST)
@ResponseBody
public SomeObject doSomething(@RequestBody SomeObject someObject) {
// code here
return someObject;
}
我想处理/存储或以其他方式改变someObject的状态,但我不知道在处理如何安全是当许多要求,或者我需要显式实例化从入站请求对象深度复制新的SomeObject。
感谢您的帮助!
修改请求参数是安全的。但是,如果Spring将重用该实例或不应该担心(但是,这是非常不可能的,因为池开销远远大于生成新的值对象)。 – eckes