为啥struts2的action要设置成“prototype”
为什么struts2的action要设置成“prototype”
在SSH应用中,action相关的bean往往设置成“prototype”(多例模式)。
1. 为什么要设置成多例模式?不设置成多例模式有什么问题?
答:这是由struts2的特性决定的。struts2的action集成了MVC中的M(model)和C(control)两层,它的变量可以直接从
页面获得数据,但这些变量都不是线程安全的变量 。如果不设置成多例模式,这个action就是线程不安全的,在多线程请求
时,就有可能出现一些不可预知的错误。
首先要搞清楚的是线程的共享资源,共享资源是多线程中每个线程都要访问的类变量或实例变量,共享资源可以是单个
类变量或实例变量,也可以是一组类变量或实例变量。多线程程序可以有多个共享资源
from: http://www.blogjava.net/feelyou/archive/2009/07/12/20165.html