欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

下一代 Java Web 开发的王者 WebJavaSeamJSFJBPM 

程序员文章站 2023-12-21 11:40:04
...

为什么是Seam是下一代Java Web开发的王者?

Seam是一个Java EE 5.0 环境下的轻量级的开发框架,Seam基于Java EE 5.0 并且提供了如下的功能:

1. 一站式的框架,

以往我们谈到程序开发的框架,例如Struts,Hibernate,Spring,等都是服务于程序开发的一个方面,或者说一个层面的,例如Struts通常用来简化表示层的开发,Hiberante通常用来处理数据访问,而Spring通常用来把不同的框架粘合起来;Seam不同在于Seam提供了所有的这些内容,使用JSF作为表示层,EJB3中的Entity Bean作为数据存储层,使用Stateless Bean集合了JSF和Entity Bean,并且Seam提供了对JSF,EJB3等规范的扩展。

2. 基于标准的

Seam基于Java EE 5.0 标准,使用了标准中定义的JSF和EJB3.也许现在由于各个应用服务器厂商保护投资的必要JavaEE 5.0 的服务器还没有普及,但是这是一个趋势,使用基于规范的技术会获得服务器更好的支持。

3. 集成AJAX

使用JBoss的RichFaces和ICEFaces,可以不使用JavaScript编码而达到你想要的AJAX效果。

4. 集成业务流程管理(BPM)

Seam集成了JBoss的jBPM,可以方便的处理业务流程。

5. 声明性的状态管理

可以使用声明的方式处理事务,安全,甚至是持久化上下文(Persistence Context)

6. 双向依赖注入(bijection)

在其他的很多框架中都浅雕依赖注入,Seam不但提供了注入,而其提供了注出。除了能使用外部定义的服务,内容外,还可以将内部的状态注出到外部组建。

7. 工作区管理和多窗口浏览(Workspace management and multi-window borwsing)

用户可以在浏览器的不同tab之间切换,Seam可以识别一个用户的多个Tab的Session。

8. 多用标注(Annotation)少用XML

Seam不但支持传统的XML的配置方式,而且更支持JDK 5所引入的Annotation

9.简单的处理集成测试

Seam都是使用POJO对象,所以很容易测试

10. 补充完善了Java EE 规范的不足

例如JSF不方便处理GET类型的请求,而Seam做了对应

11. Seam让你的Web应用更完善

Seam支持PDF,JFreechart等多种类型的输出。

Seam支持JPA,Hibernate3访问数据库,支持EJB Timer Service,Quartz处理定时任务,支持jBPM处理业务流程,以及Mail,JMS等。

Seam与其他Java EE技术的关系如下图所示:

下一代 Java Web 开发的王者
            
    
    
        WebJavaSeamJSFJBPM 

使用Seam开发Java Web应用

学习Seam需要的一些基础

第一部分

第一章, Seam介绍
第二章,一个简单的Seam应用程序分析
第三章,使用Seam Gen构建程序开发框架

第二部分

第四章,基于状态的Web项目的开发
第五章,短会话(Conversation)
第六章,并发短会话(Concurrent Conversation)
第七章,事务处理

第三部分

第八章,校验输入
第九章,数据表
第十章,Seam处理JSF的Http Get操作
第十一章,Seam CRUD 程序
第十二章,异常处理

第四部分

第十三章,Seam中的AJAX支持
第十四章,RichFaces & ICEFaces
第十五章,最底层的JavaScript

第五部分

第十六章,Seam & jBPM
第十七章,Pageflows
第十八章,Rule-Based 安全框架
第十九章,集成Testng测试
第二十章,其他

Seam 常见问题解决&方法

对于Seam我不了解,想一边学习一边将介绍补充上去。所以现在根本没有提纲/目录的概念所以九借用了,Michael JunTao Yuan的《JBoss Seam simplicity and power beyond java ee》这本书的提纲。Michael的blog在如下的位置,大家可以参照。后期随着我对Seam的理解,我肯定会慢慢的修改上述章节的名字,内容和布局。

Michael的blog http://www.michaelyuan.com/blog/

上一篇:

下一篇: