大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要讲解了“Node.js对于Java开发者是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js对于Java开发者是什么”吧!
创新互联凭借在网站建设、网站推广领域领先的技术能力和多年的行业经验,为客户提供超值的营销型网站建设服务,我们始终认为:好的营销型网站就是好的业务员。我们已成功为企业单位、个人等客户提供了成都网站建设、网站建设服务,以良好的商业信誉,完善的服务及深厚的技术力量处于同行领先地位。
运行时环境
我们知道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应用程序的架构部署:
感谢各位的阅读,以上就是“Node.js对于Java开发者是什么”的内容了,经过本文的学习后,相信大家对Node.js对于Java开发者是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!