欢迎来到天天文库
浏览记录
ID:37846150
大小:89.50 KB
页数:11页
时间:2019-06-01
《JBoss Seam--中文》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、作者简介:MichaelYuan,技术专家,《JBossSeam:SimplicityandPowerBeyondJavaEE》、《LightweightJavaWebApplicationDevelopment》等书的作者,软件顾问,目前就职于JBoss。摘要:本文介绍了JBossSeam的产生背景以及集成框架的概念,并且演示了在JBossSeam中如何使用POJOs处理JSF事件以及实现双向依赖注入。本文是《JBossSeam:一个深度集成框架》一文的第一部分,JBossSeam中文站将陆续发布该文
2、的其他部分。1.JBossSeam的产生背景软件框架对于企业级Java开发者来说,是非常有用的工具。它们被广泛地用来组装可重用的软件组件和服务。每个框架都提供了一系列的设计模式、APIs和组件模型——用于构建在框架之上的应用程序。许多受欢迎的JavaEE框架的实例,既包括Hibernate、Spring和Struts这样的开源项目,又包括基于Servlet/JSP、JSF、EJB、JMS、WebServices等标准实现的产品。一个典型的企业级Java应用程序,可以同时使用多个框架。所以,JavaEE开
3、发者们的主要竞争能力之一,就体现在使用这些框架的能力上。然而,存在太多框架的缺点在于,每一种框架都提供了不同的编程模型(或组件模型)。而要在一个Web应用中使用不同的组件模型,开发人员一般需要写很多“胶水”代码(例如数据传输对象、组件管理等)以及“胶水”配置文件,这样将会大大地降低开发效率。在这种背景下,作为“集成框架”的Seam应运而生。Seam的目标就是减少这些“胶水”代码,整合现有的各种框架,为企业级应用提供一个一致的编程模型。2.什么是集成框架?JavaEE本身就可以被认为是一个集成框架。它定义
4、了不同的框架,如Servlet/JSP、JSF、EJB、JMS、JTA,、JCA等,并使它们在企业级应用中携手合作。但是作为标准规范的JavaEE由于自身的设计问题,导致发展非常缓慢。新的理念和前沿技术在成为JavaEE标准之前,通常都已经作为开源项目出现了。Spring框架是另一个被广泛应用的集成框架。Spring对许多现有的框架提供了轻量级的封装,开发人员可以通过配置XML文件来管理应用程序中的组件。但是开发人员仍需要自己混合和匹配多个不同的组件编程模型;另外,Spring“大量XML配置”的方式也
5、因为包含太多的“XML代码”而变得繁琐。Seam是一个开源的“深度集成”框架,它试图吸收JavaEE和Spring世界中的精华为己所用。Seam牢牢地扎根于JavaEE标准:JSF和EJB3。Seam的最初目标是为了解决JSF和EJB3中的一些设计缺陷。随后,Seam的许多核心特性被采纳为将来的官方JavaEE标准,例如JSF2.0和WebBeans。随着越来越多的用户开始采用Seam,它已经远远超过JavaEE的范畴。Seam走了一条与早期的Spring框架不同的路。Seam为被它集成的所有框架提供了
6、一个统一的组件模型,开发人员可以使用统一的Seam组件,而不需要学习每个独立框架的组件管理APIs。JBossSeam中文站http://www.jbossseam.com/-2-对于开发人员来说,SeamAPI与被Seam集成的框架相比,有非常大的改进。Seam的注释(annotation)/API设计和JavaEE5非常相似。Seam集成的框架可能成为“幕后工作者”。在某些情况下,你在使用Seam的同时,却要“奔波”在其它相互竞争的框架之中——与JavaEE允许相同的API有多种实现是同样的方式。现
7、在,所有关于集成方面的论述都显示乏味和抽象。下面,我们将通过一些简单的例子让你深刻地体会到Seam是如何使开发变得轻松容易的。3.运用EJB3Beans或POJOs处理JSF事件Seam最初引人注目的特性就是直接使用EJB3作为JSF的BackingBeans。JSF和EJB3都是JavaEE的关键技术,然而,JavaEE却没有很好地整合这两个框架。它们具有不同的组件模型:JSF使用基于POJOs的“BackingBeans”处理UI事件,并且需要进行大量的XML配置;EJB3使用注释型POJOs表示持
8、久层和业务逻辑,只需要简单的XML配置。一般情况下,如果要在JSF页面中进行数据库操作,需要写JSFBackingBeans去处理UI事件,然后调用EJB3会话Bean中的方法。因此,如果开发人员需要在BackingBeans和EJB3Beans之间传递复杂的数据,通常需要在这些框架中创建DTOs(数据传输对象)。这样,整合JSF和EJB3框架将成为繁琐的事情。在Seam中,你可以直接使用EJB3Beans作为JSF的BackingBean
此文档下载收益归作者所有