




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
使用Gretty的超轻量级JavaWeb服务 Gretty是构建Web服务超轻量级框架的新学派之一。构建于极快的Java™之上,Gretty 将Groovy用作Web端点和Grape的Maven式依赖关系管理的一种域特定语言。本 文介绍如何开始使用Gretty来构建和部署JavaWeb服务应用程序。 我们已经构建了一个简单的从云到移动终端的应用程序。该应用程序名为Magnus,充当 监听移动设备位置信息的HTTP端点。它通过接收HTTPPUT请求来运行,每个请求包 含一个JSON文档,指出给定时间内帐户的位置。到目前为止,我已经使用了Web框架 Play来开发和扩展Magnus。 Play提供一个MVC堆栈,就这点它与Grails很相似。使用Play,您可以很容易地定义 利用视图(JSP、GSP、模板等)的控制器(servlets),在某种程度上,控制器管理模型。 模型是使用经Hibernate、JPA或其他类似ORM的好技术增强的POJO(传统Java对 象)实现的。 尽管MVC是较老的标准,随着Grail和Play等框架的出现,很多都已经发生了改变。 回想一下曾经维护简单的Web请求-响应交互所需的工作量(比方说使用Struts),您会 明白我们为快速构建MVCWeb应用程序而做了多大的改进。当然,并非所有的Web应 用程序都需要MVC基础架构才能工作。如今,一些Web应用程序根本就不再需要MVC “堆栈”。 为了反对这样一种反常的论调,在您关闭浏览器之前,回顾一下Magnus。虽然为了演示, 对Magnus进行了严格的设计,我的云到移动终端的应用程序不包含传统的视图组件,主 要包含了现有的成功服务的模型。与Twitter或Foursquare一样,Magnus接收来自世 界各地不同设备的消息。广义上说,Magnus是一个Web服务,而并不是每个Web服 务都需要MVC堆栈框架才能完成工作。在某些情况下,您所需要的是一个超级轻量的 Web框架,而不是Web堆栈。 本月,我们将着眼于以下内容之一:快速开发框架,太新以至于还没有自己的主页,或许并 不需要主页。Gretty的沿袭和隶属成员(分别包括Netty和Groovy)具有足够的名望, 它已经是Java2.0Web开发系列的一部分。它填补了一个许多开发人员仍然不知道他们 已经具有的需求(这就是真正的Web2.0风格,您知道吗?)。如果您愿意走狂野的一面, 它也可足够稳定地用作生产之用。 快速Java开发的历史 老的足以记得何时第一次引入ServletsAPI的我们有理由对新的“轻量级”范式持怀 疑态度;毕竟仅仅一个简单的servlet便让您构建一个Web服务,而不需要大量的代码 和由此产生的JAR文件。Web服务框架,比如Restlet或Jersey,采取了稍微不同的 开发加速方法,以类扩展、注释,甚至标准的JSR为基础来创建RESTfulWeb服务。在 某些情况下,它们仍然是很好的选择。 但事实证明,一些新的轻量级(相对于旧的轻量级)框架使得Web服务或简单的HTTP 端点(也称为路由)极其易于定义。甚至比手动塞入一个servlet还要简单! 这些框架首次出现在其他平台上,尤其是用于Ruby的Sinatra和用于Node.js的 Express。但是针对Java平台的有趣项目也已经开始出现了。Gretty就是其中之一,当然 Gretty是为Groovy和JVM产生的。 我和Gretty 就我而言,Gretty至少有两点符合:首先是使用Groovy的Grape(我不久将会详细地 对其进行描述)以方便依赖性管理。其次是其简单的用于定义端点的DSL式的语法。使 用Gretty,您可以非常快地(只用短短的几行代码)定义和部署一个工作的Web运行框 架,该框架处理实际的业务逻辑。作为示例,请看我快速地写出清单1中的典型hello world示例: 在清单1中,我创建了一个服务器监听端口8080,然后设置一个包含参数name的简 单root端点。到其他端点的任何请求都将通过defaultHandler返回到/。简单地说, 使用/的位置,处理程序为请求的客户端发送一个HTTP301“movedpermanently” 代码。所有请求会收到一个包含字符串“Hello”和任何已传递参数值的响应(将 content-type设置为text/plain);例如,/Andy将会生成“HelloAndy”。 那么清单1中最有趣的是什么?首先,您在清单中所看到的都是您的应用程序所需要的。 没有配置文件。不需要直接下载或安装任何东西(除了Groovy1.8)。要激活该示例,只 要输入groovys

书生****专家
实名认证
内容提供者


最近下载