Spring 容器创建的对象默认 都是单例 对象
SpringMVC对象 Controller的对象的创建有三种情况
Request : 在用户的一次请求中生效(用户每次请求都会创建Controller对象)多例
Session : Controller对象在一次会话中创建一个对象
如果控制器中有成员变量 设置或者赋值操作,必须使用 request 返回
问题:Web表现层控制器到底使用单例singleton还是request,prototype,还是session?
答 :
首先看控制器有没有成员变量要并发修改,如果有,必须使用request/prototype
早期的Struts2框架使用的就是成员变量接受请求参数,对应的控制器对象必须是多例
SpringMVC接受请求参数,作为方法形式参数,每次请求都会重新没参数开辟新的内存存储这个参数,不会产生线程安全问题
所以SpringMVC使用默认的单例即可