首页 > 代码库 > Action / controller

Action / controller

struts 2的Action默认是多实例 的并非单例,也就是每次请求产生一个Action的对象,即每次访问的参数都被封装在Action的成员变量中。

struts2中Action多实例的优势在于是线程安全的,每次请求都会创建单独的Action类来处理,而不用想servlet一样担心线程安全问题。

 

Spring MVC Controller默认是单例的:

从此可见,单例是不安全的,会导致属性重复使用。

最佳实践:

1、不要在controller中定义成员变量。

2、万一必须要定义一个非静态成员变量时候,则通过注解@Scope("prototype"),将其设置为多例模式。

Action / controller