在SpringMVC中,Controller 默认是单例的
单例模式容易出现的问题是:在Controller中定义的实例变量,在多个请求并发访问时会出现竞争问题,因此Controller中的实例变量不是线程安全的,尽量不要在 Controller中使用实例变量
```java // 在本地运行后,第一次访问答案是1 ,再次访问答案是2 @Controller public class TestController { private int num = 0;
@RequestMapping("/addNum")
public void addNum() {
System.out.println(++num);
}
} ```
解决办法:把Controller变成多例,注解
@Scope("prototype")
部分内容转载自:https://mp.weixin.qq.com/s/ZXyQeY1Xa0GvK4yuyCdELQ