下一代 Java Web 开发的王者 WebJavaSeamJSFJBPM
为什么是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技术的关系如下图所示:
第一部分
第一章, 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我不了解,想一边学习一边将介绍补充上去。所以现在根本没有提纲/目录的概念所以九借用了,Michael JunTao Yuan的《JBoss Seam simplicity and power beyond java ee》这本书的提纲。Michael的blog在如下的位置,大家可以参照。后期随着我对Seam的理解,我肯定会慢慢的修改上述章节的名字,内容和布局。
Michael的blog http://www.michaelyuan.com/blog/
推荐阅读
-
下一代 Java Web 开发的王者 WebJavaSeamJSFJBPM
-
java web开发之servlet图形验证码功能的实现
-
java web开发中获取tomcat上properties文件内容的方法
-
Java Web开发过程中登陆模块的验证码的实现方式总结
-
常用的web应用服务器有哪些(java开发常用四大框架)
-
Java web开发中加载图片路径的两种方式
-
常用的web应用服务器有哪些(java开发常用四大框架)
-
Java Web开发过程中登陆模块的验证码的实现方式总结
-
Java开发之使用websocket实现web客户端与服务器之间的实时通讯
-
小猿圈:web前端开发和java后端开发的区别有哪些?