找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 1465|回复: 2

抛砖引玉:jboss seam和软件框架

[复制链接]
发表于 2007-11-30 17:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

×
大家用过seam的都请进来讨论,这里我先抛砖引玉一下

看了网上多篇文章都提到jboss Seam有严重压缩了软件结构的问题。我有些感想和经验。

我先说说seam怎么个压扁了我们心爱的mvc:

1. vc压扁:            
现象:在seam里,每个ejb加上@Name,马上摇身一变又成了seam component。而一个seam component就直接是jsf的managed bean了。在view层,我们可以不用任何java代码了,view被压缩。
原因:seam诞生的初衷,只是想缝合jsf层和ejb层,并提供state management的容器。这也是现在gavin king提倡的web bean概念。

2. mc压扁:
现象:ejb3 entity作为domain model被放进逻辑代码,被扔进client端。model和control混合了。
原因:ejb3 entity的可线性化,使得entity直接成了DTO了。而且,gavin king在例子里很喜欢在entity里放逻辑,一点都不吊贫血模式,现在充血entity成了seam下的特点。
(gavin king的反骨是很明显的,在seam里我们还能体会到他的叛逆精神,譬如,不管多少专家呼吁应用的stateless性,gavin king却始终强调stateful时代的到来。)

这么一下mvc变成了一层。也就说,一个标识成seam component的的ejb,即是持久层,也是企业逻辑层,还是表现层。seam example里几乎都是这样的一层结构。

难怪从框架师眼里,seam简直是种颠覆。但对,需要快速开发的程序员来讲,seam让ee应用的开发带了RoR的味道。

不知道大家对这样的压扁怎么看。

我个人的看法是,seam只是个servlet层的framework。它虽然可以整合jsf和ejb,但是事实上,每个seam component都是依附于ejb生存周期的。简单点说,就算一个seam component标志seam scope为application,如果你的ejb是stateless,这个seam component还会是非常短命。ejb container才是老大。从这个角度来看,seam是完全可以独立出来的。今年年初,一个spring社团的牛人加入jboss seam开发队伍,整合了seam和spring。使seam的发展方向变得更加的宽广了,即seam可以完全不需要ejb。由于这个seam component的独立性,seam做的应用结构就可以象橡皮糖样,你想拉开就拉开,你想压扁就压扁。

以下是我的一种结构拉伸。

合并的jsf和seam只用于表现层,状态管理完全用seam 的不同scope,逻辑层统统stateless,持久层ejb的dao和entity。具体点说就是jsf和seam放war,逻辑层一个独立ejb jar,持久层一个独立ejb jar.

如果大家有其他的拉伸方案,欢迎一起讨论

相关帖子

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2007-12-1 01:12 | 显示全部楼层
楼主的帖子似乎离抛砖引玉比较远啊,相当专业的说

个人感觉MVC模式结构相当清晰,把任意两个层混为一谈都不太好,现在手上的Struts加Hibernate用的挺满意

俺惯用的理解就是JSF+EJB+JPA
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-1 13:45 | 显示全部楼层

回复 #2 大镖客 的帖子

嘿嘿,ls,我不是把你引来了吗:D

是啊,我也是想把层次拉开点,归根结底还就是JSF+EJB+JPA,只不过,把seam放jsf那里了这回。

seam压扁式结构如果一个人开发还可以,队伍分工开发那就惨了。我最初经历的seam项目,就是一层的,到最后解决svn conflict成了开发的主要工作。

所以现在再碰到seam项目,我坚决把seam分割在web project里,不让它再沾染任何ejb project。

ls所说的sh,ssh,还是经典啊。struts的Craig McClanahan,spring的rod johnson, hibernate的gavin king,三个framework的三个创始人,用一己之力彻底颠覆工业标准!

现在,世界航母级公司制定出的的新标准,还不是跟着他们的理念走?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

我是开心果

Archiver|手机版|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+2, 2025-6-16 09:44 , Processed in 0.095754 second(s), 32 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表