我2003年做企业培训时就说过:Java(或者.NET)实战经验过关的标志就是:你是否搞明白Session和Pool的区别。
这个概念是实战中不可避免的,其实这就和状态有关,如果你没有丰富实战经验,或者即使有,也只是数据库为中心的编程,就是使用Ioc/AOP又有什么好处呢?
其实这也和状态有关,Session和Pool的区别取决于你的应用设计是否有状态,这就是谜底,我一直未在网上说,我是想看看各路高手有无此认识。
如果你没有来自实战对状态的领悟,你就会范下面错误,甚至和人辩论,范“无知无畏”的初级错误。:
1.肆无忌惮使用Singleton单例,
2.肆无忌惮地使用httpSession
3.肆无忌惮地否定EJB,特别是有态Session Bean,就象Hibernate 发明者Gavin King肆无忌惮在TSS抨击EJB,被一些人翻译汉化复制到本站论坛,所以才有CMP vs EJB等讨论,Gavin King自己最后醒悟发表著名的关于有态stateful 的文章。
4.肆无忌惮地使用Spring这些无状态管理的框架。你可以说90%无需集群,但是每个系统都是需要状态的。
下面转贴在清华BBS上“肆无忌惮”发表言论的一个帖子:
http://www.smth.edu.cn/bbsanc.php?path=%2Fgroups%2Fdevelop.faq%2FJavaExpress%2Fjavaprogramming%2FJ2EE%2FAOP%2Fgty5
☆─────────────────────────────────────☆ gty (宜良-丽江-蝴蝶泉) 于 (Fri Feb 21 02:33:56 2003) 提到:Session Pool Design1. 利用apache common-pool实现一个Session Pool(非常简单)
批:是一个谈AOP的帖子,如何使用AOP实现POOL,可惜作者使用Session Pool, Session就是Session; Pool就是Pool,是不同两个东西,他要谈的是Pool,但是前面加Session,可见其实战经验薄弱;
行家伸伸手;便知有没有,只有初学者才会被繁话美景迷惑,发出你的功底真厚的感慨,还是尼采那句话:太阳死了,没有人值得你敬佩;只有你自己。
好好学习,2006年我们一起来学习即将替代OO,被老马微词的,即将带来后十年软件革命的MDA吧,先从四色原型模式开始。