Java springrequestscope

Java springrequestscope,java,spring,spring-boot,spring-mvc,Java,Spring,Spring Boot,Spring Mvc,请参见下面的示例。我不知道如果我在下面指定范围或不指定范围,是否会有任何区别。谢谢 @RestController @请求范围 @请求映射(“/api/v1/user”) 公共类用户资源{ @GetMapping(“/addresscheck”) 公共字符串getAddress(){ 返回customer.getAddress(); } } //我定义范围与否有关系吗?它是否仍将按每个请求处理? @RestController @请求映射(“/api/v1/user”) 公共类用户资源{ @Ge

请参见下面的示例。我不知道如果我在下面指定范围或不指定范围,是否会有任何区别。谢谢

@RestController
@请求范围
@请求映射(“/api/v1/user”)
公共类用户资源{
@GetMapping(“/addresscheck”)
公共字符串getAddress(){
返回customer.getAddress();
}
}
//我定义范围与否有关系吗?它是否仍将按每个请求处理?
@RestController
@请求映射(“/api/v1/user”)
公共类用户资源{
@GetMapping(“/addresscheck”)
公共字符串getAddress(){
返回customer.getAddress();
}
}

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

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

尽管我很好奇为什么您希望控制器是请求范围的?如果可能的话,你能分享一下你的用例吗


下面是一篇关于这个主题的好文章:

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

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

尽管我很好奇为什么您希望控制器是请求范围的?如果可能的话,你能分享一下你的用例吗


这是一篇关于这个主题的好文章:

我认为这没有什么区别。您可以在示波器上查看此指南。它为如何使用这些注释提供了很好的示例:我从您的问题中了解到的是,您想了解@RequestScope是如何工作的,您还需要什么吗?我认为这没有任何区别。您可以在示波器上查看此指南。它为如何使用这些注释提供了很好的示例:我从您的问题中了解到的是,您想了解@RequestScope是如何工作的,您还有什么需要了解的吗?