摘要:
我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享。虽然模板类通过资源池获取数据连接或会话,但资源池本身解决的是数据连接或会话的缓存问题,并非数据连接或会话的线程安全问题。按照传统经验,如果某个对象是非线程安全的,在多线程环境下,对对象的访问必须采用synchronized进行线程同步。但Spring的DAO模板类并未采用线程同 阅读全文
摘要:
我相信有不少人还不明白有状态和无状态(Stateful and Stateless)的概念,那么我们今天就来谈谈有状态和无状态,一方面不断总结提高自我,另一方面兼扫盲。这是Immutable不变模式的姐妹篇,大家可以参照着读。 Immutable不变模式的分析blog: http://www.iteye.com/topic/959751基本概念:有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象 阅读全文
摘要:
最近老有人问我不变模式,我其实也理解得不深,于是花了一些时间进行学习总结,分析了一下不变模式(immutable pattern),和大家一起分享。说得不对的地方欢迎拍砖,谢绝谩骂。姐妹篇:精通有状态vs无状态(Stateful vs Stateless).http://www.iteye.com/topic/960532 不变模式(immutable pattern)一个类的内部状态创建后,在整个生命期间都不会发生变化时,就是不变类。这种使用不变类的做法叫做不变模式。不变模式有两种形式:一种是弱不变模式,另一种是强不变模式。弱不变模式:一个类的实例的状态是不可变化的,但是这个类的引用的实例具 阅读全文