首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring RequestScope

Spring RequestScope
EN

Stack Overflow用户
提问于 2020-06-20 03:32:34
回答 1查看 7.3K关注 0票数 1

请参考下面的示例。我想知道如果我在下面指定作用域或不指定作用域是否会有什么不同。谢谢

代码语言:javascript
复制
@RestController
@RequestScope
@RequestMapping("/api/v1/user")
public class UserResource {

  @GetMapping("/addresscheck")
  public String getAddress() {
    return customer.getAddress();
  }
}


// Here does it matter I define the scope or not? is it still going to be treated as one per request?
@RestController  
@RequestMapping("/api/v1/user")
public class UserResource {

  @GetMapping("/addresscheck")
  public String getAddress() {
    return customer.getAddress();
  }
}
EN

回答 1

Stack Overflow用户

发布于 2020-06-20 04:08:09

默认情况下,所有Spring托管bean都有singleton作用域。因此,在您的第二个实现中,Spring将只创建一个UserResource对象,并且每次要满足对指定URL的请求时都会提供该对象。

然而,在第一个实现中,由于您使用@RequestScope注释UserResource,Spring将创建一个新的控制器对象来为每个请求提供服务。这意味着您可能在UserResource中维护的任何状态信息都将丢失。还将为每个请求重新创建UserResource的所有成员变量。

虽然我很好奇为什么你想要一个控制器是请求作用域的?如果可能的话,你能分享一下你的用例吗?

这里有一篇关于这个主题的好文章:Spring Bean Scopes

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62477370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档