在Spring MVC中,控制器(@Controller)为单例。
假设我对控制器中的服务类有依赖性,并且该服务类具有原型范围。 在这种情况下,
对于同时向控制器发送的两个不同请求,我们是否将获得服务类的不同实例?
如果只有一个服务类实例可用于两个不同的请求,那么服务类功能内定义的局部变量是否会在两个请求内重叠?
答案 0 :(得分:2)
请考虑以下示例。
controller1
和controller2
都需要将服务作为依赖项。对于每个控制器,将创建一个新实例。但不会因其他请求而更改。
request1 --> controller1 --> service1
request2 --> controller1 --> service1
request3 --> controller1 --> service1
request4 --> controller2 --> service2
request5 --> controller2 --> service2
request6 --> controller2 --> service2
this.serviceVariable
访问将解决此问题。