• 您好,欢迎访问33目录网!本站专注于优质网站导航,打造方便快捷的分类目录网站!
  • 注册 / 登录
  • 数据统计:
  • 176 个主题分类入
  • 53172 个优秀网站
  • 9 个待审网站
当前位置:33目录网 » 网络资讯 » 电商运营 » 文章详细 订阅RssFeed

干货:NodeJS对于Java开发者而言是什么?

发布时间:2016-12-31 浏览:3109次 来源:网友投稿

我们都知道Node.js现在得到了所有的关注。每个人都对学习Node.js感兴趣,并希望可以工作于Node.js。在开始工作之前了解技术背后的概念总是不会错的。但对初学者来说,可能会因为不同的人使用的不同定义而晕头转向。Node.js究竟是什么?它是新的语言还是新的框架,是新的工具抑或只是一个简单的JavaScript文件?即使对于有经验的Java开发人员来说,也很难快速了解Node.js。因此,在本文中,我将尝试为Java开发人员诠释Node.js。

运行时环境

我们知道Java需要一个称为JRE的运行时环境来运行Java程序。JRE有一个称为Java Virtual Machine(JVM)的虚拟机。JVM有许多组件,如垃圾回收器(GC),即时(JIT)编译器,解释器,类装载器,线程管理器,异常处理器,用于在不同时间执行不同的任务。

除了JVM之外,JRE还有一系列的库(例如,rt.jar)来帮助运行时的Java程序。我们有单独的JRE用于不同的平台,如Windows,Macintosh和Linux,以及还有JVM。

好吧,就试着记住如何编译和执行一个Java程序。我们有源代码(.java),它由Java编译器编译成一个名为Bytecode(.class)的中间代码。此Bytecode被提供给JVM以便在给定的目标平台上执行。JVM在执行之前将Bytecode转换为特定于目标平台的机器码。

Java程序的执行可以通过下面的图片解释:

Web应用程序架构

典型的Java Web应用程序架构有四个层:客户层(Client),展示层(Presentation),服务/业务层(Service/Business)和数据层(Data)。

客户层(Client layer)可以使用像jQuery这样的库来支持AJAX功能并且具有一些客户端验证和DOM操作。

展示层(Presentation layer)通常是与客户层交互的一个层。该层通常已经实现了用于请求和响应处理的MVC模式。在这一层可以使用如Spring MVC这样的框架。此外,还有一个模板引擎,如Velocity,可以根据预定义的布局动态地渲染视图。

服务或业务层(Service/Business layer)负责具备业务逻辑并与其他层通信。在AJAX请求的情况下,该层直接向客户层提供数据。此层执行业务逻辑并回应到展示层以更新模型。服务层是与数据层通信以获取或更新所需数据的一个层。服务层可以具有使用任何框架,例如Spring的SOAP或REST服务实现。

数据层(Data layer)通常使用一些ORM框架,如Hiberate,或任何基于JDBC的库/模板(Spring JDBC模板)来与任意RDBMS(如Oracle)进行通信。

架构部署

Java Web应用程序架构部署包括Apache HTTP服务器,它充当代理服务器以及提供静态内容。动态内容由Web容器提供,Web容器实际上是处理Java文件的引擎。

下图说明了Java Web应用程序的架构部署:

我如何理解Node.js?

运行时环境我们上面讨论JRE的原因是为了直接与Node.js进行比较。对,你看明白了吧!Node.js不是一种语言;不是框架;也不是工具。它是用于运行基于JavaScript应用程序的运行时环境。

与JRE类似,Node.js有一个称为JavaScript Virtual Machine(JsVM?)的虚拟机。它为基于JavaScript的应用程序生成机器代码,以便在不同的平台上启用它。

Node.js还有一系列库,它们可能被称为Node API或Node Modules,用于帮助在运行时运行JavaScript应用程序,类似于JRE中的Java库。我们对不同的平台,如Windows,Macintosh和Linux,以及JsVM有不同的Node.js要求。

JavaScript Virtual Machine就是V8,来自Google的开源JavaScript引擎。与Java Virtual Machine一样,JsVM(V8引擎)也有主要组件,如JIT和GC,分别用于执行任务,运行时编译,和内存管理。

现在,让我们试试理解JavaScript程序是如何编译和执行的。源代码是用JavaScript(.js)编写的。在将其提供给JsVM(V8引擎)之前,没有生成中间代码。JsVM直接获取此源代码并将其编译为特定于给定目标平台的机器代码以便执行。

下面的图片可以简明地说明上述解释:

Web应用程序架构基于Node.js的Web应用程序主要遵循Java Web应用程序架构。主要区别在于客户端请求处理。客户端请求将由单个线程处理,但在Node.js应用程序的情况下将异步处理。使用Java,每个客户端请求将由单独的线程同步处理,因此它是多线程的。

有许多框架/库可用于基于Node.js的Web应用程序开发。这里有趣的地方在于,所有的框架/库都是基于JavaScript的。

你可以从下面的图片中快速理解不同的层和在那些Node.js应用程序层中使用的框架/库。

客户层使用Angular.js,客户端MVC框架。展示层,以及服务层,可以通过使用Express.js,一个基于JavaScript的Web应用程序框架来开发。这也自带一个用于运行Node.js应用程序的独立服务器。数据层使用对象数据建模模块(例如Mongoose.js)来与NoSQL数据库(如MongoDB)通信。

这个特殊的栈称为MEAN,它由MongoDB,Express.js,Angular.js,客户端MVC框架和Node.js(运行时环境)组成。

架构部署基于Node.js的Web应用程序的架构部署遵循Java的Web应用程序部署架构。它有一个NGINX服务器,它的作用就如同HTTP代理服务器,并提供静态内容。动态内容由Node.js服务器提供,该服务器包含处理JavaScript文件的引擎。

下面的图解释了基于Node.js的Web应用程序的架构部署:

就这样?

请注意,这篇文章的目的只是为了帮助从Java开发人员的角度理解Node.js,而不是为了显摆对Java或Node.js的支持。此外,除了我们在讨论中涉及到的之外,还有许多不同的架构解决方案、框架和工具。为了便于比较和理解,我采用了最简单和可行的架构解决方案以及最简单的框架和库系列。因此,请务必更进一步地去深入了解。祝大家学习愉快!

  版权说明:本文"干货:NodeJS对于Java开发者而言是什么?"内容来源于互联网用户投稿,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有涉嫌侵权/违法违规的内容,请发送邮件至2855532207QQ邮箱申诉,一经查实,本站将立刻处理。

  • 上一篇: 腾讯张小龙:微信红包活动今年春节可能不会有
  • 下一篇: Twitter CEO征求用户反馈:考虑允许修改推文
  • 相关资讯推荐
    浅谈江小白与有趣的EDM邮件营销
    【浅谈江小白与有趣的EDM邮件营销】都说江小白的文案好,但究竟好在哪里却没几个人能说出个一二,而直到今天都没出现第二个江小白,可见江小白的文案并不像表面看上去那么简单。正如无数营销号的标题,江小白的文案最大的特点就是扎心,把关于爱情、关于青春、关于亲情、关于理想......的各种情绪娓娓道来,一遍又一遍地戳到受众的情感点。
    做好互联网口碑营销的几个原则
    在互联网口碑营销,除了新闻媒体的企业品牌推广,也可以使用微博,微信,如社会媒体、产品的元素,卖点等大量的曝光,用户更了解品牌信息,引导用户的愿望。数现在社交媒体,微博,微信已经包含超过90%的互联网用户,用户通过在媒体上曝光,了解品牌信息,会产生某些利益的产品,甚至搜索相关产品购买,这无疑会大大提高品牌的转化率。
    网络营销策划所必备的内容
    【网络营销策划所必备的内容】网络营销策划并不单指网站推广,也并不单是一个网上销售,所以,网络营销工作所带来的效果也是多种表现,比如网络营销对客户服务的支持、对线下产品销售的促进、对公司品牌拓展的帮助等等。网络营销策划就是为了达成特定的网络营销目标而进行的策略思考和方案规划的过程。
    百度百家号熊掌号商家号的区别
    【百度百家号熊掌号商家号的区别】百度竞价推广对商家号的定义是广告商家投放的竞价广告或信息流广告被点击之后,你可以对这些点击你广告的用户做一个运营,使之在一定周期的转化后,成为你的直接客户。(你的广告被消费者点击后,不可能每个消费者都会马上转化为客户,如何再保持一种联系呢,这就是商家号的作用)。
    浅谈电商内容运营的注意事项
    【浅谈电商内容运营的注意事项】在内容电商出现之前,淘宝、京东上的电商交易我们可以称其为联合评估的消费。因为用户在淘宝上进行购物的时候还是依照着传统中“货比三家”的形式进行的,用户不会只看了一家店便下单,往往都是把一系列有相同商品的店铺看完之后,然后再挑选其中更好的进行下单购买。
    自媒体内容制作与工作管理工具介绍
    【自媒体内容制作与工作管理工具介绍】对于自媒体人来说,好好利用工具是非常重要的,尤其是做视频的自媒体人,第一步就是需要熟悉各种剪辑工具,下面就来看看这几款视频自媒体人不可缺少的工具吧!
    2021天猫双11活动开启预热
    【2021天猫双11活动开启预热】算算日子,离一年一度的“双11”没几天了,一大波省钱方案、玩法攻略、剁手推荐应该都在路上了吧?不过比起只关注价格,对于COCO这样的真·潮人来说,买什么时髦才是剁手的重点。