Java开发者结合开发者结合Node.js编程入门教程编程入门教程
主要介绍了Java开发者结合Node.js编程入门教程,我将先向您展示如何使用Java EE创建一个简单的Rest服务来读取 MongoDB
数据库。然后我会用node.js来实现相同的功能,需要的朋友可以参考下
首先, 我必须得承认,作为一个有着十多年开发经验的java开发者,我已经形成了解决绝大部分问题的固有套路,尽管它们很多时候显得笨重
和繁琐。 比如说如果要读取一个文件,那应该就是初始化一个BufferedReader 实例并传入一个FileReader,这几乎是顺理成章的,我在很多自
认为算得上“企业级”的项目中编写这样的代码并且很享受这个过程,可以说我就是一个对其他语言不屑一顾的java脑残粉。
如果你正在阅读这篇博文,你可能已经陷入了我多年前早就陷入的一个误区,作为一名合格的开发人员应该不断地学习新的技术并且根据
实际工作需求选用适 当的技术。尽管我一直在变老并且有朝一日可能会厌烦了java。但是我现在真的发现了一个激动人心的新东西,node.js对
于我就像一个儿童得到一个新 奇的玩具,在这篇博文中,我将先向您展示如何使用Java EE创建一个简单的Rest服务来读取 MongoDB数据
库。然后我会用node.js来实现相同的功能,你会更容易了解到这种新的开发语言的激动人心之处。
从基础开始从基础开始——什么是什么是Node.js?
首先,我要说明一点,Node.js不是那种“新潮时尚”,只有“潮人”才使用的语言。虽然它是本着这种认知开始,但是我很高兴的报告给大
家,Node.js是一种成熟的语言——并且在当下这个互联网时代,它已经找到了其自己的方式进入大型企业,支撑起一些最高流量的网站。
Node.js是 你技能储备当中的一个非常实用的工具,在构建稳定、安全和高性能的代码上,其便捷度会令你大吃一惊。
言而总之,Node是一种针对服务器端活动的语言。它使用了Javascript语言,并且有非常多的库可用,比如npm模型。你可以把那些npm
模型比作Java中的.jar包。当你需要一部分功能,并且不喜欢自己全部编写这部分代码,极有可能在npm模型中已经提供了你正在寻找的特性。
Node应用程序通常执行时需要实现效率最大化利用非阻塞 I/O 和异步事件。对于Java开发者来讲需要知道的一点是Node应用运行单线程
中。然而,后端节点代码使用多个线程进行操作,如网络和文件访问。鉴于此,Node对于那些需要实时经验的应用是完美的选择。
继续继续——IDE支持支持
你可能会像我一样,在IDE中“生存”和“呼吸”,这可能源于Java实在是太罗嗦了,需要我们在软件开发过程中编写恒定的代码来完成功能。
一旦我们找到 了代码完成的好处,我们慢慢学会了使用 IDE 进行文件管理、 调试和其他非常有用的功能。可以这样说,我喜欢使用一款IDE并
且在使用Nodeb工作时继续使用它。下面是当前最为第一批支持Node的IDE:
1.Eclipse——这应该很容易上手当你在Java中已经使用它。仅需要安装Node.js插件即可。
2.JetBrains IntelliJ IDEA——一款非常流行的商业化的IDE。目前为止,这是我最喜欢的IDE。
3.Microsoft Visual Studio——是的,你没看错。Node已经成长到微软在Visual Studio添加了对其的原生支持。这个实现非常稳定,并且VS是
我第二喜欢的IDE。说来也怪,我使用VS仅仅用作一些基础的Node项目。
4.CodeEnvy——一款基于web的IDE
5.Cloud9——一款基于web的IDE
6.SublimeText 2——没有多余装饰的文本编辑器,由于其轻量级,在开发者中的知名度越来越高。
这是我工作在Node基础项目上的最喜欢的几款IDE。仅仅做个举例。
从一个范例开始从一个范例开始
在这篇博文的剩下部分里,我们将要用Java EE和Node.js结合起来创建一个简单的REST服务。这个REST服务将会简单的从MongoDB数
据库里面读取信息并且返回这些结果给请求者。而 关于Java应用服务器和MongoDB数据库的安装和配置则不在本文的讨论范围之中。
创建我们的Java应用
第一步:配置 第一步:配置pom.xml文件文件
我们把这个范例叫做restexample ,我将会使用JBoss EAP应用服务器。第一件我们要做的事情就是为使用Maven构建系统的依赖管理来配
置我们的pom.xml文件。下面就是包含了我们这个restexample 应用里面所需要的依赖的pom.xml文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>restexample</groupId>
<artifactId>restexample</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>restexample</name>
<repositories>
<repository>
<id>eap</id>
<url>http://maven.repository.redhat.com/techpreview/all</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>eap</id>
<url>http://maven.repository.redhat.com/techpreview/all</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>