技术开发 频道

分析:JBoss野心勃勃的Web Beans(上篇)



    3. Web Beans入局
 
    Hibernate大获全胜,无疑让JBoss和Gavin King尝到了甜头,同时也增强了他们的信心,等待着下一次机会的到来,随时准备发动下一场战役。当Sun的JavaServer Faces技术推出以后,凭着独创性地在Web开发上引入了组件模型和事件驱动模式,Java Web企业应用框架的重心逐渐向JSF倾斜。随着Sun及其合作伙伴的大举投入,JSF在经历了长时间的蛰伏之后,慢慢崭露头角,大有成为表示层框架的标准之势。

    2006年是JSF加速发展的年头,1.2版本规范颁布,解决了JSF使用过程中暴露的主要问题,JSF的各种实现(Implementation)和扩展如雨后春笋般涌现。当Java EE 5将JSF上升为强制规范之后,JSF成为Java Web表示层框架的标准,几成定局,JBoss和Gavin King等待的机会又来了。他们的武器还是粘合剂,不过这次,他们要粘合的不是数据层和应用层,而是应用层和表示层。粘合剂的名称,就叫做Web Beans。

    称Web Beans为粘合剂,也许不太恰当,因为Web Beans的目标,并非粘合应用层和表示层那么简单。Web Bean其实是JSF的Managed Beans的升级版或者替代品。Managed Beans是JSF的一项技术,用于在Web页面和业务逻辑之间建立联系。页面通过EL访问Managed Beans,而Managed Beans可以访问后台的EJB或者应用层的其他组件和功能,这样,用户就可以通过页面实现对应用系统的操作。

    Managed Beans机制最突出的优势,是其对象的实例化由JSF框架自动控制,无需程序员干预,这在一定程度上简化了Java Web开发。另外,值得一提的是,JSF为Managed Beans定义了三种上下文范围,分别是请求范围、会话范围和应用范围。所谓上下文,是指Web应用的一系列请求之间的前后联系,Managed Beans的上下文范围,定义了其生存周期,例如,会话范围的Managed Beans,始于会话的开始,止于会话的结束。Managed Beans在生存周期内,其实例状态得到维护,因此,是在不同请求之间传递应用系统状态的一种手段。

    可惜的是,JSF没有在应用层上下太多的功夫,与应用层交互的唯一手段,只有Managed Beans。这倒也怪不得JSF,因为JSF的定位本来就是表示层框架,在Sun的蓝图里,应用层由EJB主持大局。如同应用层和数据层之间需要持久化技术来粘合一样,应用层和表示层之间,同样需要某种技术来粘合。Managed Beans有一定的粘合作用,但远远不能满足企业应用编程的需求。这正是Gavin King所需要的。Gavin King做事向来雷厉风行,这次也不例外,抓住JSF的几条小辫子之后,Gavin King和JBoss祭出了Web Beans的大旗。

0
相关文章