小弟感觉也是

高手似乎不太有高手风范

难道还没有成为真正的高手?

国人尚待努力,拿着人家的东西打嘴仗这么卖力干嘛,

平和公证的讨论氛围有待提倡,
我想大家是恨的就是论坛一言堂了吧!

"ejb是针对transaction-oriented enterprise application的组件,那么也就使说ejb是面向以事务为中心的企业软件" = "ejb的核心是
transaction,不是domain model" ?

transaction-oriented has nothing to do with coarse-grained model, they are two different concepts! Domain model is always the center of enterprise application. Coarse-grained is a weakness of the ejb, it's one of the advantage of Hibernate and JDO, it will be improved in EJB3.

"ejb是针对transaction-oriented enterprise application的组件,那么也就使说ejb是面向以事务为中心的企业软件" = "ejb的核心是
transaction,不是domain model" ?

Transaction-oriented application has nothing to do with coarse-grained model, they are two different concepts! Domain model is always the center of enterprise application, a fine-grained model is a must for all applications except you don't want to use OO. Coarse-grained is a weakness of EJB, and this is the reason why Hibernate and JDO are welcomed by many people. EJB3 has improved a lot to create fine-grained model.

分析讨论可以,情动挑衅不可取,左派风格早已不流行了

Spring和EJB争论在本站是一个永恒的话题,其实它可能来自我们心底深处轻和重的取舍,重的真的残酷; 而轻的真的美丽?重和轻的对立是所有对立中最神秘、最模糊的。

关于SPING与EJB的胡言乱语--重和轻永恒的话题:

http://www.jdon.com/jive/article.jsp?forum=16&thread=24513

Spring vs. EJB 这篇文章的作者感觉是个垃圾(别嫌我骂你!)

“在scope上比较spring和ejb没意义,根本不是一个级别的。”

请问EJB的档次很高吗?支持事务啊!不会自己也在粘合JTA这样的技术把!请问不用JTA,EJB还能笑吗?当你做一个项目的时候,老板告诉你客户给了3个月的期限,你确说得13个月,除了3个工作,还要加10个怀胎吗?

“component architecture的基本观点就是business关注点和technique关注点分离,business由component负责,technique由

context或者叫container实现。那么很明确了,component architecture里有两种编程,针对component的和针对container的。
好,有了这个理解,我们可以继续了,如果有人有疑意,那么抱歉,这片文章并不适合您,后面全部的论点都是基于这个观点的,如果不认可这个,下面的也不会认可,您

也不用浪费时间了。”

不错你说的很对,就是要将容器提供的技术和独立的业务代码分离,这也是企业复用的准则,可是不要以此来一边掩盖ejb的丑陋,一边压制spring的优势,好像spring不够资格谈容器!

“现在来看spring的component方面,spring以javaBean为基础,贫容器,也就是对容器没要求,于是,spring第一个缺点,contianer和component的约定不清晰(写到这里我

已经听到一些人在叫了,这是spring的优点,自由,别急,后面我会证明这是spring的软肋),但是spring用了一种比较聪明的办法,那就是加强container working.

看一下spring的container working,通过spring的aop api,我们可以很容易的为特定组件定制容器环境,把一个组件需要的容器技术环境以aspect的形式weave到component

里,非常的灵活,也非常的强大,spring通过这种形式来弥补组件/容器约定不足的情况,一切由component选择,容器除了装配(ioc/dip)不提供任何技术context,想要什

么自己来,这个给了component实现者自己选择的权利,很好(但也隐含了spring的最大的不足,别急我后面会说)。”

spring的软肋都让你发现了,你真厉害,这么明显的问题原来是rod在一直骗我们,呵呵,你真聪明!我们好像都是傻子!你不是都告诉大家了吗,component要分成分离context和business,那么请回忆一下你写的“ejb container working的能力几乎为0”spring就是再弥补这些丑陋!
你把aop想的太简单,太原始了,aop是一种技术,还是一种思想还得看谁在用,spring就把这种新的思想模拟了一个独立的context,并且可以在上面开做无尽的container working,spring的aop就是container ,而aop技术跟Ejb container 比就不是一个级别的,一个是新的思想,一个是面向对象技术无法优雅解决的蹩脚策略。

“这是spring一大硬伤,完全container-managed下缺少特定的component边界控制”

居然告诉我们spring是使用没有边界的概念,呵呵,请在好好想象软件设计的根源,怎样为自己的产品提供优秀的弹性设计。

“ejb不易复用是因为如果脱离容器,我们就必须给它提供相应的技术context,事务、分布、并发等等一个也不能少,因此容器外复用ejb效率很低。注意,

是容器外,组件本来就是跑在容器里的,谁让你非要拿出去用),而容器内呢?因为ejb规范规定ejb容器应该兼容,别说webSphere到bea的移植有多难,其实不难,或

者说难度比把spring组件移植到pico复杂一点,当然你用vendor-specified的特性就没办法了,这不再规范内,你违规就别怨人家。因此,ejb的复用是可以的,而且是规范保

证的,容器外也有办法,也不是很难,我后面说。

再看spring,的确他很灵活,但这正是致命伤,component完全是业务实现,但是容器呢?spring怎么保证容器的环境?没有,只能你自己保证,当你沾沾自喜的说,spring

里的component都是pojo,可以很好复用的时候,可曾想到,这复用的代价是要复用容器。比如有个componentA,在SystemA里需要事务模型A和安全模型A,在SystemB里需要事

务模型B和安全模型B,当你从SystemA里复用componentA的时候,你要怎样?重写事务模型B和安全模型B,然后你可以堂而皇之的说,你复用了组件。的确,你复用了组件,但

是你重写了容器,值吗?更可怕的是,spring容器和组件没有约定,那么怎么保证你的组建不写技术代码?ejb只要Bean-Managed并提供统一的事务模型就好了,spring呢?你

靠什么保证?你自己?这是spring一大硬伤,完全container-managed下缺少特定的component边界控制.你可以说,特殊要求的事务模型ejb还实现不了呢,的确,这是有可能

,但是ejb transaction model不能适用的情况有多少?如果真的不行,只能说ejb的简单复用在这里失效。

不要告诉我EJB规范就是现实,看看现实的容器,有没有遵照规范走的!
如果jboss做了更多的container working,那么假如我们会把很多横向操作放到容器中进行拦截解决,请问这样的业务代码可以复用在weblogic下吗?spring可以,因为这样的拦截独立与容器!

你以为spring的事务是放在代码中实现的啊?请问ejb中用到了编程式事务,那么我想在其他环境换个事务方式,是不是不动啊?不要吧ejb仅存的一点点好处拿来炫耀,说spring太野了,野不野还要看会不会!!!

还有很多,不想说了,觉得ejb的拥护者说话不要误导大众,不要谈什么哲理,没用,6年了,也没有见ejb实现他的哲理,spring用了4年极大满足了大多数的需求,那个值得尊重,那个知道蔑视,请好好想想,还有banq有拥护ejb的倾向,不要删我发的,我打了半天字!


>如果jboss做了更多的container working,那么假如我们会把很多横向操>作放到容器中进行拦截解决,请问这样的业务代码可以复用在weblogic下>吗?spring可以,因为这样的拦截独立与容器!

这个问题说明EJB独立容器本身问题,也说明EJB本身不是一个真正可完全配置的组件,在可配置灵活上,Spring/JF等AOP的POJO微容器是上风,但是Spring 2.0将拦截器weaving改成静态实现,虽然性能提高,但设计上这是一个倒退,另外Spring没有支持状态管理,也是非常可惜,而JF则支持微容器内状态支持,最近, Hibernate创始人Gavin King致力于EJB推动了,推出基于JSF+EJB的框架,重要特点就是状态管理。
http://www.jdon.com/jive/thread.jsp?forum=62&thread=27279

这些说明技术在发展,各取所长。

>banq有拥护ejb的倾向,不要删我发的,我打了半天字!
你写得非常精彩,和楼主一样精彩,从专业观点看,都是言之有据的,我一直倡导百花齐放,怎么会删除有理有据的帖子呢?

我只删除那些胡说的只言片语的帖子,是否“胡说”,我作为专业人员应该知道这个尺寸,那些在外面谣传我删贴的要么两种人:

1. 对专业知识怀疑的人;要么他比我专业,要么他是无知;
2. 别有用心的小人,这个就不谈,世界之大,远离他们吧。


现在三年过去了,EJB和spring都在不停的发展,另banq不爽的spring的session缺陷现在也不存在了,banq可不可以评价一下现在的spring,因为这些吵架贴,我现在也没怎么学习spring,现在的spring还是05年的那个spring吗?banq老师是否还是对spring不满?
[该贴被oojdon于2008-06-24 19:07修改过]