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是如何工作的,您还有什么需要了解的吗?