InfoQ

新闻

文章:深入浅出JBoss Seam

作者 Michael Yuan译者 包亮 发布于 2007年11月4日 下午8时35分

社区
Java
主题
Web框架
标签
JBoss Seam,
JBoss,
EJB,
JSF

本文节选自Michael Yuan与Thomas Heute所著JBoss Seam: Power and Flexibility Beyond Java EE 5.0一书中的第一章和第二章。作者首先介绍了JBoos Seam的一些特性。然后接下来,带领读者进入了Hello World之旅,给读者展示了一副易于开发、易于理解的编程模型的全景图。

名副其实,JBoss Seam就是一支粘合剂。在Java EE 5.0下,EJB 3.0和JSF都是用来构建Web应用的优秀框架。EJB 3.0用于业务逻辑处理而JSF用于前端页面显示,虽然它们互补,但开发者仍需要引入一个“人造层”(artificial layer),这个“人造层”往往是JSF框架所需要的XML配置文档和支持Bean。Seam打破了EJB 3.0和JSF之间的人造层,为整合EJB 3.0和JSF提供了一个一致的、基于注解的途径。

“名不副实”,JBoss Seam不仅将不同框架粘合起来,还有其他许多特性。这些特性包括,与Web交互生命周期相适应的ORM持久化上下文;对Web 2.0的支持;基于双向映射(bijection)的POJO服务;以隐式映射为主体,以显式映射为例外的非常规配置;基于XML配置文档的页面流程或业务流程的定义;基于TestNG的内置测试框架对单元测试和集成测试的全面支持;以及类似于Ruby-On-Rails中基于命令行的生成器SeamGen的支持等。这些特性在本文中,作者都着墨进行了详细阐述。

本文最后,作者也花费了不少笔墨来讲解示例应用的配置文档和打包后的目录结构。有了这些基本知识,读者可以亲自构建一个Hello World应用。

阅读全文:深入浅出JBoss Seam

4 条回复

回复

Seam 2.0正式发布 发表人 qi xiang 发表于 2007年11月6日 上午6时2分
myseam解决了jboss seam2使用上的一些不足 发表人 chen hong 发表于 2007年11月27日 上午2时45分
文章非常棒 发表人 xeric wei 发表于 2008年8月5日 下午10时50分
感觉这个例子在并发情况下会有问题 发表人 wu shh 发表于 2008年9月6日 上午7时25分
  1. 返回顶部

    Seam 2.0正式发布

    2007年11月6日 上午6时2分 发表人 qi xiang

  2. 返回顶部

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

    2007年11月27日 上午2时45分 发表人 chen hong

    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.增加用户和角色管理模块。

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

  3. 返回顶部

    文章非常棒

    2008年8月5日 下午10时50分 发表人 xeric wei

    一点小建议,seam和php不要比(当然也不要去和ror比),毕竟两个关注点有所不同,zend framework、ror也可以一样简单。例如zf也不是事件驱动的,ror的数据模型到视图模型之间的关系和seam也有所不同,模式不同也不可比。

  4. 返回顶部

    感觉这个例子在并发情况下会有问题

    2008年9月6日 上午7时25分 发表人 wu shh

    ManagerAction作为无状态的sessionbean,其属性(person)的赋值与取值在并发情况下不知道会不会存在问题。

独家内容

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。