1.spring的controller是单例还是多例?
spring的controller默认是单例的。
优点:
1.高性能,单例不用每次都new,当然快了
但是我们知道单例的缺点:单例是不安全的,会导致属性重复使用。
最佳使用:不要在controller中定义成员变量。
--------------------------------------------------------------------------------------------
2.如何将controller设置成多例呢?
1.xml中controller bean的scope属性设置成prototype:原型模式。
spring的controller默认是单例的。
优点:
1.高性能,单例不用每次都new,当然快了
但是我们知道单例的缺点:单例是不安全的,会导致属性重复使用。
最佳使用:不要在controller中定义成员变量。
--------------------------------------------------------------------------------------------
2.如何将controller设置成多例呢?
1.xml中controller bean的scope属性设置成prototype:原型模式。
2.通过注解@Scope("prototype"),将其设置为多例模式。
--------------------------------------------------------------------------------------------
3.Struts2的action和springMVC的controller的区别?
1.struts2是类级别的拦截,action是多例的。
springMVC是方法级别的拦截,controller是单例的。
2.springMVC的速度一般比Struts2快
3.安全上:Struts2曾经爆出重大漏洞,就是ognl表达式URL注入的漏洞。
目前springmvc还没有发现什么漏洞。