仓酷云
标题:
来看Java开辟2.0 - 经由过程CouchDB和Groovy的RESTClient完成REST
[打印本页]
作者:
再见西城
时间:
2015-1-18 11:28
标题:
来看Java开辟2.0 - 经由过程CouchDB和Groovy的RESTClient完成REST
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
今朝为止,本专栏系列已探求了Google和Amazon平台中的云盘算。固然它们在完成和布局上存在分歧,但两种平台都撑持疾速和可扩大的部署体例。它们能够疾速经济地组装、测试、运转和保护Java使用程序,这无疑是前所未有的。可是,云并非影响现在Java开辟速率的独一要素。开源办理计划还能够匡助您敏捷组装软件使用程序,由于您不再必要编写大批代码。手动编写对象干系映照(ORM)、日记或测试框架的时期已一往不复返。这些成绩已随工夫渐渐失掉懂得决,然后又再次呈现在了开源范畴中—再次面对这些成绩—但这些办理计划几近一直要比您本人的好。
关于本系列
从Java手艺初次表态以来,Java开辟的格式已产生了伟大的变更。得益于成熟的开源框架和牢靠的租用式部署基本举措措施,如今已能够敏捷经济地拆卸、测试、运转和保护Java使用程序了。在本系列中,AndrewGlover将探究使这类全新开辟典范成为大概的各类手艺和工具。
在Java开辟的全部过程当中,开源立异简化了使用程序的拆卸历程。全新的开源数据库ApacheCouchDB(停止撰写本文时的刊行版为0.10.0)也不破例。搭建好CouchDB情况以后能够轻松地利用它。您只必要操纵它的HTTP毗连便可;既不必要JDBC驱动程序,也不必要第三方把持办理平台。在本文中,我将向您先容CouchDB并展现怎样利用它提拔开辟速率。思索到安装的烦琐性,您将利用Amazon的EC2平台。而且,您将经由过程一个便利易用的Groovy模块来与它通讯。
面临文档的数据库
干系数据库基础上主导了数据库市场。但其他相似的数据库—包含面向对象和面向文档数据库,二者在面向干系的天下中极其分歧—也不时发扬着无足轻重的感化。CouchDB是一种面向文档的数据库。它是无形式的,而且同意您以JavaScriptObjectNotation(JSON)字符串的情势来存储文档。
JSON
JSON是一种轻量级的数据互换格局,同时也是Web使用程序的替换格局。它相似于XML,但远没有它那末具体。得益于其轻量级特征,它正成为Web的通用语。
试想一个背规泊车罚单。该罚单将涵盖以下项目:
背规的日期
工夫
地位
车辆的形貌
派司信息
背规情形
罚单上搜集的格局和数据因统领权而异。即便关于单一统领权限内的尺度停车罚单来讲,它们的内容也很有大概存在分歧。举例来讲,警官在开罚单时能够不填写工夫,大概能够省略车型,而只填写派司的具体信息。地址能够是两条街道的组合(好比Fourth和Lexington的交汇处),大概是某个流动地点(比如说19993MainStreet)。但所收罗信息的语义大略类似。
罚单的数据点能够在干系数据库中建模,但具体信息却有点贫苦。举例来讲,怎样无效在干系数据库中捕捉某个交汇点呢?而且在没有街道交汇的情形下,数据库是不是会利用空字段来暗示第二个地点呢(假定建模体例为在各列中捕捉不同的街道名)?
在这些情形下,干系数据库的笼统化水平大概会稍高一些。所需的信息已接纳了文档(罚单)的情势。为何不将数据建模为文档呢?如许能够不必逝世守严厉的干系形式,而只必要大抵遵守初级形式的语义。这恰是CouchDB的用武之地。它同意您以天真的体例来对这些域范例举行建模—功效是一个完整的文档,它没有形式,而是利用与其他文档大抵类似的蓝图。
MapReduce
Google首创的MapReduce是一个用于处置海量数据集的观点框架。它是一种高度优化的使用大批盘算机的散布式成绩办理机制。MapReduce包括两个函数:map和reduce。map函数用于承受大批输出,并将它们支解为较小的部分(同时将这些数据传送给其他历程)。reduce函数的感化是未来自map的一切单独输入整合为一个终极的输入。
借助CouchDB,您能够搜刮文档、文档属性乃至在干系天下中联系关系文档。您的完成体例是利用视图,而不是SQL。从实质上说,视图是您接纳MapReduce款式(在JavaScript中)编写的函数;也就是说,您终极只必要编写一个map函数和一个reduce函数。这些函数将配合过滤或提取文档数据,大概无效使用它们之间的干系。现实上,CouchDB具有充足的天真性,只需底层文档没有产生发化,它就只必要运转这些函数一次,从而加速视图处置历程。
CouchDB最成心思的中央是它的计划体例。CouchDB表现了Web自己的基础(也是极其乐成的)观点。它公然了一组周全的REST式API,同意创立、查询、更新和删除文档、视图和数据库。这使得CouchDB的利用变得十分复杂。您不必要借助其他驱动程序或平台来入手下手开辟:一个扫瞄器便能完成一切事情。也就是说,丰厚的库使CouchDB的利用变得十分复杂—但从外部来看,它们仅仅是经由过程HTTP来使用REST式观点。
与Web的实质特征相相似,CouchDB在计划时融进了大批可扩大要素。它是利用并发编程言语Erlang编写的,它撑持绑定散布式、容错、不中断使用程序。该言语(现已开源可用)是由Ericsson开辟的,并在电信情况中失掉了普遍使用。
<p>
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。
作者:
简单生活
时间:
2015-1-28 05:54
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者:
小妖女
时间:
2015-2-4 12:56
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者:
若相依
时间:
2015-2-8 23:24
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者:
不帅
时间:
2015-2-21 19:20
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者:
admin
时间:
2015-3-2 02:01
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者:
只想知道
时间:
2015-3-11 01:54
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者:
谁可相欹
时间:
2015-3-11 17:14
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
山那边是海
时间:
2015-3-19 02:53
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者:
愤怒的大鸟
时间:
2015-3-27 01:53
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2