Lis*_*isa 1 java spring spring-mvc spring-boot
请看下面的例子。我想知道如果我在下面指定范围是否会有任何区别。谢谢
@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();
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,所有 Spring 管理的 bean 都有singleton作用域。因此,在您的第二个实现中,UserResourceSpring 只会创建一个对象,并且每次满足对指定 URL 的请求时都会提供该对象。
然而,在第一次执行,因为你注释UserResource与@RequestScope春季将创建一个新的控制器对象来充当每个请求。这意味着您可能维护的任何状态信息UserResource都将丢失。的所有成员变量UserResource也将为每个请求重新创建。
尽管我很好奇您为什么希望控制器具有请求范围?如果可能,您能否分享您的用例?
这是一篇关于这个主题的好文章:Spring Bean Scopes
| 归档时间: |
|
| 查看次数: |
5763 次 |
| 最近记录: |