其他分享
首页 > 其他分享> > singleton

singleton

作者:互联网

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。

struts1和struts2在各方面的简要对比
1、在action实现类方面:Struts1要求Action类继承一个抽象基类。Struts2 action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。
2、表达式语言方面:struts1整合了JSTL,这种表达式语言有基本对象图遍历,但在对集合和索引属性的支持上功能不强大。Struts2在可以使用JSTL的前提下,还整合了一种更加强大和灵活的表达式语言OGNL。所以,表达式语言功能更加强大。
3、类型转换方面:Struts1ActionForm属性通常都是String类型。Struts1使用Commons-beanutils进行类型转换,每一个类一个转换器,转换器是不可配置的,struts2使用ognl进行类型转换。支持基本数据类型和常用对象之间的转换。
4、数据校验方面:struts1支持在ActionForm重写validate方法中手动校验,或者整合Commons validator校验框架来完成数据校验。struts2支持重写validate方法中进行校验,也支持整合xwork校验框架进行框架。
5、Action执行控制方面:struts1支持每一个模块对应一个请求处理,但是模块中所有Action必须共享相同的生命周期。Struts2支持通过拦截器堆栈为每一个Action创建不同的生命周期。开发者可以根据需要创建相应堆栈,从而和不同的Action一起使用。
6、servlet依赖方面:struts1 Action依赖ServletAPI,struts2 Action不再依赖ServletAPI,从而允许Action脱离web容器运行,降低了测试Action的难度。
7、封装请求参数方面:struts1使用ActionForm封装用户的请求参数。struts2直接使用Action属性封装用户请求。
8、绑定值到视图方面:struts1使用标准的jsp机制把对象绑定到视图页面,struts2使用valuestack技术,使标签库能够访问到值,而不需要把对象和视图页面绑定在一起。

 

singleton是单态模式的 ,有ioc容器管理 ,当然不是线程安全的啦 ,不过所谓的线程安全也是相对的

如果你的类是没有状态的, 那用singleton 的性能要高一些 ,因为只有一个实例 。
如果你的类是有状态的 ,那就必须显示的设置为prototype了

在ssh2 项目中 , struts2的action交由spring管理的时候 ,spring默认是singleton的 ,而struts2的action显然是有状态的 ,所以必须显示设置为
scope=“prototype”

prototype为原型模式 , 每次action请求过来都会创建一个action

但是对那些Dao的实现类推介scope=“singleton” ,因为这些类没有状态,用singleton只需维护一个实例,显然性能高一些

转载于:https://my.oschina.net/joeyjava/blog/271576

标签:singleton,校验,struts1,struts2,Action,action
来源: https://blog.csdn.net/weixin_33670713/article/details/91950194