InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

选择Seam的十大理由

作者 李剑 发布于 2007年11月12日

领域
语言 & 开发
主题
Web框架 ,
Java
标签
JBoss Seam ,
JSF ,
EJB
JBoss Seam中文站发表了一篇文章:选择Seam的十大理由,较为全面地概括了Seam的优势。这十大理由简要总结如下:

1. 增加Ajax特征的最快捷方式。Seam1.1整合了许多基于JSF的开源Ajax解决方案……开发人员可以轻松地在程序中应用Ajax,甚至不需要学习JavaScript;并且将远离 单独使用Ajax时潜在的bugs和性能问题。
2. 开始使用EJB3.0的最简单方式。EJB 3.0是Seam使用的核心技术,你可以无处不在地使用整合的EJB 3.0组件模型。因为在Seam应用中,每个类都是一个EJB组件。你甚至不用写任何整合代码,即可美化”你的框架。
3. 充分挖掘JSF特性的最佳方式。Seam使用注解的方式代替繁琐的XML配置,减少代码量的同时也提高了开发效率。Seam在很多方面扩展了JSF的功能:包括多窗口操作、工作空间管理、基于模型的验证、基于jBPM的页面流、国际化和页面分段缓存等等,甚至还加入了控制标签化页面的机制。
4. 实现业务流程管理(BPM)的最简单方式。Seam深度整合了jBPM,使用jBPM进行任务管理和页面流管理将变得异常简单。
5. 使得CRUD同样简单。在创建数据驱动的应用中,Seam将整合现有易用的数据层框架,包括JPA、Hibernate等,使开发人员可以通过一些数据库反向工程工具和命令行工具高效地开发数据库应用。
6. 持久层工作将是”小菜一碟”。Seam来源于Hibernate社区,由Hibernate创始者Gavin King设计和开发。它的会话模型解决了传统无状态的Web应用架构导致的持久层相关问题。
7. 注解功能。Seam是第一个从始至终、从持久层到表示层,都使用Java 5注解功能的程序模型。你将不会再因为繁琐的XML配置而感到迷失方向。
8. 为自动化集成测试而喝彩。Seam引入了一种新方式:”自动化集成测试”。你可以模拟每个请求或者会话的全部业务流,来测试应用中从持久层到表示层的所有Java代码。
9. 开放性标准与开源的结合。Seam建立在实现开放标准的、像JSF和 EJB 3.0这样的开源项目基础上,并且整合了其他优秀的开源项目,如Hibernate、jBPM、Facelets、Drools等等。是完全建立在“致力于Java平台的创新和提高”的开源项目理念上的开源框架。
10. 快速上手

该站点同时还推出了连载系列:“JBoss Seam,一个深度集成框架(一)(二)(三)”,详述了JBoss Seam的产生背景、概念、应用示例和Seam编程模型中的关键要素。

请继续关注InfoQ中文站,我们会为你带来更多有关Jboss Seam的精彩报道。

李剑 李剑──ThoughtWorks高级咨询师,在持续集成、重构等领域具有丰富的经验;多次为国内大型企业敏捷组织转型提供咨询和培训服务。

测试的问题 发表人 B Necromancer 发表于
少了点吧 发表人 fan fan 发表于
Java.. 发表人 Li Cao 发表于
Re: Java.. 发表人 小刀 凉粉 发表于
Re: Java.. 发表人 Xing Botao 发表于
Re: Java.. 发表人 shen jaly 发表于
我也看好Seam 发表人 Xing Botao 发表于
myseam解决了jboss seam2使用上的一些不足 发表人 hong chen 发表于
  1. 返回顶部

    测试的问题

    发表人 B Necromancer

    试了几个例子,在单元测试时候,依然要“费力”的摆脱EntityManager,在集成测试的时,不支持类似String query="select u.name from u where u.id={#user.id}"。不知道是不是自己的原因?

  2. 返回顶部

    少了点吧

    发表人 fan fan

    个人认为是对“会话变量”的管理,这个很多文章都谈到过啊

  3. 返回顶部

    Java..

    发表人 Li Cao

    我不太相信Java的东西很快速上手

  4. 返回顶部

    Re: Java..

    发表人 小刀 凉粉

    嗯~~~那你认为什么的东西容易快速上手呢?脚本语言?

  5. 返回顶部

    我也看好Seam

    发表人 Xing Botao

    我比较看好Seam/ZK/Flex

  6. 返回顶部

    Re: Java..

    发表人 Xing Botao

    我比较讨厌跟风学习脚本语言,到底自己家公司的产品/项目是不是真的适合用脚本语言来开发?根本不考虑,看有的所谓的大虾说Ruby好,就学Ruby,并跟着起哄

  7. 返回顶部

    Re: Java..

    发表人 shen jaly

    支持楼上的说法。很多东西都是被炒作起来的。

  8. 返回顶部

    myseam解决了jboss seam2使用上的一些不足

    发表人 hong chen

    jboss seam是非常优秀的架构,他的web层扩展jsf,提供了丰富的web组件,使开发更快

    ,复用性更高,同时还提供了强大的ajax功能,很容易实现web2.0开发;业务层也是用

    基于组件的方式实现,使两个层次的调用非常简单,省去了复杂的配置文件,同时提供

    了ejb3的完美整合,和以前的j2ee架构比,有非常多的创新,但是还是有一些使用及不

    不方便的地方:

    1.model、HomeBean、ListBean和view的代码只能被生成到同一个包了,特别是大量的

    view代码在同一个目录下,如果项目大,就会带来很多不便。
    2.表的前缀在生成时,不能被除去。
    3.被生成的页面里的字段值都是英文的表名或列明,没有放在资源文件里,使用时每个

    页面都要改为对应的中文。

    myseam myseam.googlecode.com 不但继承了jboss seam2.0GA的所有特点,同时

    解决以上不足,还提供了一下功能:
    1.用datascroller tag 去分页列表数据。
    2.用rich:calendar tag 去显示日期字段。
    3.日期的格式和getMaxResults的值被配置在资源文件里。
    4.增加用户和角色管理模块。

    以上特点都是通过工具自动生成。

深度内容

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

Java Remoting远程服务(下)

随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。