spring中的Controller默认是单例的,若是某个Controller中有一个私有变量a,所有请求在同一个Controller时,使用的a变量是共用的。即 若是某个请求中修改了这个变量a,则 在别的请求中能够读到这次修改的内容。若是在@Controller之前增加@Scope("prototype"),就可以改变单例模式为多例模式。
SpringMVC是基于方法的,同一个URL的请求是同一个实例处理的。每次请求都会把请求参数传到同一个方法中。此时如果类里面有成员变量,那么这个变量就不是线程安全的。在类中 没有成员变量的情况下,则是线程安全的。
如果需要使用成员变量,使用ThreadLocal即可。