打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Apache Beehive 相关介绍

开源 SOA 工具的编程技术



级别: 初级

Kunal Mittal, 门户/J2EE 架构设计师和咨询顾问

2005 年 5 月 09 日

Beehive 是一个新的 Apache 项目,用于简化 Java 2 Platform, Enterprise Edition(J2EE)以及 Web 服务编程。本文将介绍如何使用 Beehive,并概要介绍 Pollinate,这是一个用于创建 Beehive 应用程序的 Eclipse 插件。

BEA Systems Inc. 和 Apache 在 2004 年 5 月 25 日宣布了 Beehive 项目的诞生。这个项目着重用于简化 Java 2 Platform, Enterprise Edition(J2EE)和 Web 服务编程,它使用了注释(annotation)的概念,这种技术很快就会成为 Java 技术的一部分。面向服务的架构(SOA)开发也是这个项目的一个重点。

Beehive 是按照 Apache License V2.0 许可协议进行发布的,BEA 对此项目进行了广泛的支持。现在,大约有一半的 Beehive 代码提交者都是 BEA 公司的雇员,这清楚地表明社区中还有其他一些人正在对这个项目贡献着力量。

Apache Beehive 项目创建是为了支持以下功能:

  • Java Page Flow (JPF)技术,也称为(NetUI)
  • 控件
  • 基于 Java Specification Request(JSR)181 的 Web 服务

最终,这些技术将一起汇集到 Model-ViewController(MVC)编程模型中,如图 1 所示。JPF 技术形成控件器层。NetUI 标记库则会参与视图层。模型层是使用 Java 控件构建的。


图 1. MVC 模型和 Apache Beehive 技术

Pollinate 插件

NetUI、控件和 Web 服务技术一起用于简化 J2EE 和 SOA 的开发。另外还有一个名为 Pollinate 的 Eclipse 插件项目也在进展之中。这个项目可以允许开发人员使用 Eclipse 来构建 Apache Beehive 应用程序。我相信其他 IDE,例如 IntelliJ 和 JBuilder 很快也会开始支持 Apache Beehive。

下面让我们更详细地来了解一下 Apache Beehive 中使用的各种技术。

NetUI 还是 JPF

如果您曾经使用过 BEA WebLogic Workshop V8.1,就可能使用过 JPF 技术,它是直接在 Struts 之上构建的。正如您可能了解的一样,Struts 是目前市场中采用最为广泛的一种 MVC 框架。因此,如果 JPF 是在 Struts 之上构建的,那么为什么不使用 Struts 呢?

JPF 充分发挥了 Structs 的关键功能,但却省略了 Struts 所需要的很多繁琐工作(指对部署配置文件的管理,例如 struts-config.xml 文件)。在 BEA 的 Page Flows 最初版本中,引入了一种由 BEA WebLogic Workshop 自动生成和维护的声明性编程语言。与之相反,Apache Beehive 版本的 Page Flows 使用 JSR 175 来定义自己的元数据。JSR 175 是一种元数据规范,它可以让您降低 J2EE 的编码量。

JPF 技术中也提供了一组标签库,名为 NetUI。在典型的 MVC 设计模式中,JPF 用来构成控制器层。NetUI 标签库可以在表示层中提供帮助。实际上,您可以让一个 Web 应用程序同时使用 Struts 和 JPF。

清单 1 给出了一个简单的 JPF 控制器,它会打印 HelloWorld。


清单 1. 简单的 HelloWorld JPF 控制器
                                                import org.apache.beehive.netui.pageflow.PageFlowController;                        import org.apache.beehive.netui.pageflow.annotations.Jpf;                        import org.apache.beehive.netui.pageflow.Forward;                        @Jpf.Controller (                        simpleActions= {                        @Jpf.SimpleAction (name="cancel", path="begin.do")                        }                        )                        public class HelloWorldController extends PageFlowController {                        @Jpf.Action (                        forwards= {                        @Jpf.Forward (name="success", path="helloworld.jsp")                        }                        )                        public Forward begin() {                        return new Forward("success");                        }                        }

注意,这里使用了注释。我首先使用 @Jpf.Controller 注释来定义这个类是一个 JPF 控制器。@Jpf.SimpleAction 注释定义了这个控制器中的操作。这些注释与 Struts 中操作(action)的概念类似。@Jpf.Action 注释定义了操作本身。@Jpf.Forward 注释定义了在流程的下一个阶段会发生什么。这个注释与 Struts 配置文件中信息的概念类似。

前向注释(forward annotation)中引用的 HelloWorld JSP 文件在本文中并没有介绍。对于这个例子来说,它可以是任何 JSP 文件,只要包含一行向屏幕上打印 HelloWorld 信息的代码即可。

NetUI 技术还包括 3 个标签库,它们的基本功能是简化 JSP 文件的开发,并在视图层和控制器层之间提供自动的数据绑定。这些标签都可以支持 JavaScript,因此您可以像标准的 HTML 标签(例如 inputselect)一样使用它们。这些标签库包括:

NetUI
这个标签库包括与 struts-html 标签类似的一些标签。
NetUI-data
NetUI-data 标签库用来将表单和控制器中的数据绑定到 JSP 文件中。它可以让您快速显示数据列表,例如搜索结果。
NetUI-template
您可以在 JSP 文件中使用 NetUI-template 标签库来创建子节(或模板)。

有关 NetUI 标签库的更多信息,请参阅 参考资料



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Struts2 初探
2 Struts Hello World Example in Eclipse
JAVA Web框架比较
每晚一首英文儿歌NO155——Here Is The Beehive
或受致命病菌感染 新西兰召回一款知名火腿切片
eclipse搭建SSH框架详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服