【IT168 技术文档】
EJB3.0 (Enterprise Java Beans 3.0)和JSF (JavaServer Faces) 被标准搭载在JavaEE5里,JBoss Seam是由JBoss公司推出的无缝联结JSF和EJB3.0的一个WEB开发框架。
JBoss Seam是什么
EJB3.0 (Enterprise Java Beans 3.0)和JSF (JavaServer Faces) 被标准搭载在JavaEE5里,JBoss Seam是由JBoss公司推出的无缝联结JSF和EJB3.0的一个WEB开发框架。
JSF作为WEB表现层(Presentation)的一个框架技术,在MVC的WEB开发模型中担当着视图(View)和控制(Controller)的角色,其中JSF框架中的JSP起着View的作用,而Managed Bean则起着《Controller》的作用。Managed Bean的定义在faces-config.xml中加以记述。
EJB3.0则在WEB应用中担当着业务逻辑处理(Business)的角色。
虽然JSF与EJB3.0被标准搭载在JavaEE5里,但JavaEE5却没有给出一个结合JSF与EJB3.0的API。要同时在一个WEB应用中使用JSF和EJB3的话,开发者必须自己考虑一个实现方案。
JBoss Seam便于这样一种WEB开发框架,它提供了统合管理JSF和EJB3组件的方法。通过JBoss Seam,可以简单地实现无缝连接表示层的JSF和逻辑处理层的EJB3组件。
在一般的开发模型中,JSF的Managed Bean与EJB3的Entity由于分属于2个不同的组件模型,所以他们的状态也不得不分别管理。比如,在JSF里用faces-config.xml定义Managed Bean,JSF框架根据faces-config.xml的定义对Managed Bean加以管理。在使用EJB3的情况,得把Managed Bean传送给EJB3框架,EJB3对自己的Entity的状态加以管理。
而使用JBoss Seam的情况,JSF的Managed Bean则不再需要在faces-config.xml里定义,JBoss Seam本身提供了一种可以称为Seam组件的Bean(Java Bean),只要在普通的Java Bean里,对它加以标注(annotation),JBoss Seam便可将其自动映射(mapping)为JSF的Managed Bean和EJB3的Entity。
JBoss Seam的运行环境
JBoss Seam本身可以运行在任何支持EJB3.0的服务器里。
JBoss Seam的标准化
JBoss已正式向JCP(Java Community Process)提出了JBoss Seam所提倡的Web Beans标准:JSR 299,并得到了全体专家组成员的一致同意:http://www.jcp.org/en/jsr/results?id=3865。
[JSR 299: Web Beans]技术目的是让EJB组件Bean可以当成JSF的Managed Bean使用,但背后同样包含了要简化使用Java的WEB开发模型的目的。
JBoss Seam很可能会在JavaEE平台里作为一个新的开发模式被加以推广。