go micro java_Java Micro Framework:您无法忽略的新趋势

go micro java

什么是Java微框架,为什么要使用它们?

Java微框架 每种语言都有权衡。 对于Java,要成为一种安全,经过严格测试,向后兼容的语言,就要在敏捷性和简化方面做出一些牺牲。 无可否认,有些冗长和冗长的内容,但是,如果您真的想深入研究或大规模推广,JVM作为后端非常有吸引力。 它功能强大,并已在最恶劣的环境中经过测试。 毕竟,由于某种原因,Java被广泛使用并且可以强力部署。

然而,并不是每个人都接受事物的状态。 有好几个人试图找到解决Java膨胀的方法,并且仍然保持JVM的功能。 第一个浪潮是围绕轻量级Java框架(我们写了其中的一些框架: Dropwizard与Springboot )。 这些为Java提供了轻量级的现代框架,并帮助缩短了开发时间。 现在,最近又出现了第二波浪潮。 那个浪潮是Java微型框架。

新帖:Java Micro Framework:您无法忽略的新趋势http://t.co/l51yQNrzWd pic.twitter.com/v0JAPXfz6Q

— Takipi(@takipid) 2015年6月10日

什么是Java微框架?

随着语言的成熟,每个版本的不可避免的效果是完善的库会不断增长和膨胀。 一点之后,大多数项目实际上不再需要这些库中包含的许多功能。 微型框架是试图解决这个问题的尝试。 这个想法是要创建一个集中的,敏捷的解决方案,使生产过程成为其基础。

Micro Java框架本质上是轻量级Java框架之旅的延续。 它们是当今使用Java的最简便的方法。 作为新手,尚未在所有类型的生产环境中部署它们,但是早期的生产部署已显示出巨大的成功。 他们的吸引力很明显,并且这个领域现在充满了兴奋和积极发展。

今天,我将介绍三个可用的更流行的Java微框架:Ninja Framework,Spark和Jodd。

Java微型框架– Github统计信息

Java微型框架– Github统计信息

忍者框架

忍者
Ninja是用于创建Web服务和应用程序的全栈Micro Java框架。 它旨在利用Play和Ruby on Rails的积极方面,并通过纯Java格式交付它们。 它使用MVC概念以简化操作,并具有以一致的方式编写任何大小的应用程序的能力。

作为一个集成的软件堆栈,Ninja附带了许多现成的功能(例如JSON解析,指标支持,HTML呈现),这需要为控制器添加一些注释和定义。 这些功能大部分基于使Ninja成为对DevOps友好的工具。 这些库的包含使Ninja易于使用。 在可伸缩性方面,Ninja是无状态设计,这使得水平扩展仅需添加服务器即可。

功能和易用性之间的权衡是,与该领域的其他一些工具相比,用户选择更少,占用空间更大。 为您选择了开发结构,并自动创建了一组源文件夹和文件。

人气和图书馆:在Github上 ,Ninja截至撰写本文时有809颗星星和288个叉子,与Jodd相当,但在人气上远远落后于Spark。 如果您想贡献,请查看Github页面。 对于HTML渲染,Ninja使用Freemarker。 为了处理JSON和XML,使用了Jackson。 许多核心库由Ninja编写。

入门: Ninja入门非常简单。 它基于Maven,需要Java和Maven才能运行。 忍者项目通过Maven原型工作,一旦创建,用户就可以使用单个命令来构建新项目。 要启动第一个项目,命令是

mvn archetype:generate -DarchetypeGroupId=org.ninjaframework -DarchetypeArtifactId=ninja-servlet-archetype-simple

输入一些值并移至项目目录后,执行以下操作将在其“ SuperDevMode”中启动Ninja(它将拾取您自动进行的更改):

cd MY_INSTALLED_PROJECT
mvn clean install // to generate the compiled classes the first time
mvn ninja:run // to start Ninja's SuperDevMode

从那里,您可以将项目导入所选的IDE中并开始编码。 有关更多详细信息,请查阅文档 。

要点: Ninja Framework重新设计了Java框架,以提供简单,可伸缩且易于使用的功能。 它提供了许多功能,使用户可以轻松快速地启动并运行。 作为一个完整的堆栈框架,与其他某些选项相比,您确实获得了更大的占用空间和更少的可定制性。

火花

火花
请勿与Apache Spark混淆,此Spark的目的是设计一个纯Java框架,该框架可用于轻松,简单地创建REST API和/或Web应用程序。 Spark是一种敏捷且精简的框架,大小不到1 MB,可用于快速轻松地开发应用程序。 最初受到Sinatra的启发,Spark已发展成为一个完全实现的Web框架,拥有一个敬业的开发人员社区,该社区继续保持活跃的发布周期。

作为一个微框架,Spark决定让用户选择模板引擎来设计其应用程序。 他们提供的灵活选择库使用户可以为他们的项目选择最佳选项,而不会因生态系统细节而陷入困境或学习困难。 并且由于他们专注于提供小尺寸解决方案,因此几乎不需要任何配置或样板。

相比于其他选项,Spark灵活性和简单性的折衷方案是功能较少。 Spark的目标是尽可能地简化和直接,从而省去了许多额外的工作,例如过多的注释和XML配置。 为了超轻量级,它牺牲了一些潜在有用的功能。

入门: Spark入门非常简单。 它需要Java和Maven才能运行。 第一步是添加一个Maven依赖项:

<dependency><groupId>com.sparkjava</groupId><artifactId>spark-core</artifactId><version>2.2</version>
</dependency>

第二步是导入Spark并开始编码:

import static spark.Spark.*;
public class HelloWorld {public static void main(String[] args) {get("/hello", (request, response) -> "Hello World!");}
}

有关更多详细信息,请查阅文档 。

人气和图书馆:在Github上,截至撰写本文时,Spark拥有2398个星星和542个分支,使其轻松成为我今天在这里重点介绍的三个框架中最受欢迎的框架。 如果您想贡献,请查看Github页面。 Spark提供的灵活性的一部分不是将用户锁定在特定的库中。 例如,对于HTML渲染,可以使用Freemarker,Mustaches,Velocity,Jade,Handlebars,Pebble或Water。 对于您要使用的任何对象,都添加一个Maven依赖项进行设置。

总结: Spark消除了许多Java缺陷,并提供了一个简单而灵活的Web框架,该框架易于设置,可用于创建各种Java项目。 但是,通过细化,您确实会失去一些功能,因此Spark对于大型Web应用程序不是理想的选择。

乔德

乔德

Jodd是Java的微框架,工具和实用程序的集合,因此它可能无法直接与此处的其他同类工具进行比较。 实际上,例如,Spark可能会作为Jodd的一部分包含在内。 但是Jodd的驱动力是减少许多Java工具和框架的占用空间并降低其运行速度,并提供多种超轻量级框架和工具。 Jodd不会将它们全部组合在一个单独的应用程序中,而是将每个库分解成自己的独立块,从而允许用户选择并选择他们所使用的库。

乔德(Jodd)已经存在了一段时间,在那段时间里,他们只要发现需要就构建了轻量级的工具和实用程序。 通过将工具和框架分开并作为一个松散的包来交付,Jodd可以为每个单独的部分保留极为集中的范围。 它们具有用于处理请求,用于DI容器,用于解析HTML5等的框架。 像这样的集合似乎违反了简化的微框架的想法,但是整个捆绑包的容量不到1.5 MB,因此占用空间很小。

与乔德(Jodd)的权衡是,它还没有为您完成。 库集合中提供了大多数功能,但是您必须动手并自行设置。 可定制性为用户提供了很多控制和灵活性,但是使用起来却不那么容易。 幸运的是,每个单独的工具既简单又小巧,因此深入研究代码不需要费力地摸索。 Jodd站点上的文档还提供了一些指导和最佳实践。

入门: Jodd是使用Gradle构建的,并且针对Java 1.5及更高版本。 由于Jodd是工具的集合,因此入门并不像其他工具那么简单。 一种选择是下载Jodd软件包以获取所有模块。 另一种选择是通过Git从源代码构建Jodd。 为此,
克隆Jodd Git存储库:

git clone https://github.com/oblac/jodd.git jodd

然后使用以下命令构建项目:

gradlew build

您也可以在Maven中安装Jodd。 为此,请使用以下命令:

gradlew install

有关不同模块的更多详细信息以及如何使用它们的示例,请查看Jodd的文档 。

知名度和图书馆:在Github上 ,Jodd撰写本文时拥有837星和243个分支,这使其与Ninja相当,但远远落后于Spark。 如果您想贡献,请查看Github页面。 Jodd是实用程序,框架和工具的集合,因此它使用的库是自己的。

总结: Jodd是非常专注且轻量级的框架和工具的集合。 用户可以通过多种方式组合这些库,以获取满足其需求的定制解决方案,这些解决方案仍提供许多功能。 但是,通过将每个元素分解为不同的部分,用户有责任潜入并按照自己的需要进行一切设置。

结论

Java微型框架是尝试在保持Java优势的同时解决其弱点的尝试。 他们专注的裸露方法允许非常轻便的应用程序部署,从而帮助开发人员将JVM的功能与更新,更快的语言的敏捷性相结合。

作为较新的开发,定义什么才是Java微型框架可能是一个意见问题。 根据你想如何定义来看,有几个人可以包括和探索,如JHipster , Javalite , Ratpack和Vert.x 。 如果您过去使用过微框架,请在下面的评论部分中告诉我们您对微框架的看法。

翻译自: https://www.javacodegeeks.com/2015/06/java-micro-frameworks-the-new-trend-you-cant-ignore.html

go micro java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言调用C++类成员函数讲解和实例

点击蓝字关注我们1、问题成因C语言与C调用问题原因主要在于C编译器和C编译器的不同。C是过程式语言&#xff0c;C编译器编译后&#xff0c;函数在符号库中就是函数名&#xff0c;没有其他任何附加信息。而C是对象式语言&#xff0c;支持函数重载&#xff0c;C编译器编译后&…

学生命科学要学计算机吗,现在学生物学出路真的有那么不济吗?

最近浏览知乎&#xff0c;看到大规模的生物劝退贴&#xff0c;这些帖子纷纷拿出多个例子&#xff0c;并现身说法&#xff0c;告诫学生物的同学尽早转行&#xff0c;并声称劝退一人胜发7篇CNS。作为网友盛传的天坑之首&#xff0c;生物专业到底有多坑&#xff1f;环球科学曾对北…

java笔试题_Java面试才到笔试就没有然后了?快来签收,高频笔试57题及解答

前言很多人面试之前&#xff0c;可能没有在互联网公司工作过或者说工作过但年头较短&#xff0c;不知道互联网公司技术面试都会问哪些问题&#xff1f; 再加上可能自己准备也不充分&#xff0c;去面试没几个回合就被面试官几个问题打蒙了&#xff0c;甚至笔试都过不了。最后以惨…

java开发错误_每个Java开发人员都必须避免的9个安全错误

java开发错误Checkmarx CxSAST是功能强大的源代码分析&#xff08;SCA&#xff09;解决方案&#xff0c;旨在从根本上识别&#xff0c;跟踪和修复技术和逻辑安全漏洞&#xff1a;源代码。 在这里查看 &#xff01; 自从1995年中期引入Java以来​​&#xff0c;它已经走了很长一…

C语言中常用的标准库函数有哪些?

点击蓝字关注我们标准头文件包括&#xff1a;<asset.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> <…

计算机考试一级考试基础知识,全国计算机等级考试一级msoffice基础知识

全国计算机等级考试一级msoffice基础知识导语&#xff1a;在日常生活中&#xff0c;媒体(Medium &#xff0c;复数形式为Media )是指文字、声音、图像、动画和视频等内容。多媒体(Multimedia )是指能够同时对两种或两种以上媒体进行采集、操作、编辑、存储等综合处理的技术。多…

2008铁路旅客列车时刻表_天津到新沂汽车卧铺大巴车长途汽车发车时刻表

长途大巴网上需要注意什么&#xff01;选择乘坐大巴&#xff0c;是大家出行时的一个好选择&#xff0c;而且长途大巴网上也 很方便&#xff0c;能让大家节省不少的时间&#xff0c;但是网上有许多的要求&#xff0c;可能大家还不清楚。小编就给大家 介绍下长途大巴网上须知。长…

web ua检测_UA Web挑战会议:针对初创公司的SpringIO

web ua检测在本周&#xff0c;我在“后端”部分的UA Web挑战会议上发表了讲话。 我在演讲中选择了一个奇怪的话题-“面向初创企业的SpringIO”。 结果是什么&#xff1f; 我将在下面总结。 在过去三年中&#xff0c;我开发了各种个人Web项目。 我再也没有称它们为“初创公司”…

手把手教你撸一个线程池 - C++版

点击蓝字关注我们前面的文章在手把手教你写 C 语言线程池中&#xff0c;已经实现了 C 语言版的线程池&#xff0c;如果我们也学过 C 的话&#xff0c;可以将其改为 C 版本&#xff0c;这样代码不管是从使用还是从感观上都会更简洁一些。对这些代码做从 C 到 C 的迁移主要用到了…

备忘录怎么用红笔标注_错题本的正确打开方法,你用对了吗?

相信很多考生都会有自己的错题本&#xff0c;可是并不是每个考生的错题本都起到了作用。那么错题本究竟如何做才可以切实可用又可以做的好呢&#xff1f;大禹未来教育收集整理了相关内容&#xff0c;分享给大家&#xff01;1、制作错题本的步骤步骤一&#xff1a;把所有的练习册…

组装台式计算机需要哪些配件,组装电脑需要哪些配件 电脑装机教程图解

DIY电脑一直都是电脑爱好者非常喜欢的&#xff0c;对于电脑爱好者来说&#xff0c;通过自己动手DIY组装电脑&#xff0c;不仅可以更为深刻的认识硬件&#xff0c;了解电脑主机内部结构&#xff0c;还能够学习到安装系统等知识&#xff0c;从中可以带来很多乐趣。今天我们为大家…

C语言代码优化的实用方法大总结

点击蓝字关注我们1、选择合适的算法和数据结构选择一种合适的数据结构很重要&#xff0c;如果在一堆随机存放的数中使用了大量的插入和删除指令&#xff0c;那使用链表要快得多。数组与指针语句具有十分密切的关系&#xff0c;一般来说&#xff0c;指针比较灵活简洁&#xff0c…

怎么取消苹果手机自动续费_手机腾讯视频的vip怎么取消自动续费?

如果是安卓手机直接在腾讯视频的【个人中心】找到【我的VIP会员】即可选择【管理自动续费】取消自动续费。如果是苹果手机需要在Apple ID中找到【订阅】选项&#xff0c;取消订阅即可。以下是详细介绍&#xff1a;1、如果您是安卓手机直接点击进入【腾讯视频】的应用&#xff0…

计算机专业去荷兰还是瑞典,给申请计算机专业的同学几点建议

计算机专业想来是广大美国研究生申请的热门专业&#xff0c; 这里所说的热门&#xff0c;不光指招生人数多&#xff0c; 就业前景优势也是无容置疑的。广大申请者的硬件条件无外乎分为以下几种情况&#xff1a;1、托福80&#xff0c;GRE 3002、托福90 GRE3153、托福100&#xf…

为何某些公司不允许使用C++STL

点击蓝字关注我们最初开始禁用 C STL&#xff0c;是因为早期项目编码实践中留下的惯例&#xff0c;被后来的程序员继承下来。老项目中这种选择尤其地多。不过如果有人将其上升到公司行为在不同项目中全面禁用 STL&#xff0c;则没有必要&#xff0c;而且我倾向于做这种决定的人…

支持向量机python代码_Python中的支持向量机SVM的使用(有实例)

除了在Matlab中使用PRTools工具箱中的svm算法&#xff0c;Python中一样可以使用支持向量机做分类。因为Python中的sklearn库也集成了SVM算法&#xff0c;本文的运行环境是Pycharm。 一、导入sklearn算法包 skleran中集成了许多算法&#xff0c;其导入包的方式如下所示&#xff…

C++ 23将引入标准库模块支持,编译速度提升10倍

点击蓝字关注我们虽然模块是 C 20 的主要卖点&#xff0c;但与 C 20 不同的是&#xff0c;C 23 的标准库也将实现模块化。从标准库开始&#xff0c;模块有望改善编译速度和 C 开发者组织代码的方式。C 是丹麦计算机科学家 Bjarne Stroustrup 创建的编程语言&#xff0c;由 ISO …

python刷题_11.学习Python,刷题才能让你感受到快(差)乐(距)!

猜数字游戏可用一个简单的while循环来实现。 其中 随机数 的生成在第4篇介绍过&#xff0c; 键盘输入在上一篇介绍过 import random result round(random.random()*100) while result ! guess: guess int(input()) if guess>result: print(大了!) elif guess print(小了!)…

java jigsaw_Java 9和Project Jigsaw如何破坏您的代码

java jigsawJava 9迫在眉睫&#xff0c;它将带有完整的Project Jigsaw 。 在我从OpenJFX邮件列表的最近讨论中得知它可能会破坏现有代码之前&#xff0c;我并没有对此给予太多关注。 这对于Java非常不寻常&#xff0c;因此引起了我的兴趣。 我阅读了该项目的JEP和一些相关文章…

C语言的万能“三板斧”

点击蓝字关注我们作为嵌入式工程师&#xff0c;写一个效率高效&#xff0c;思路清晰的C语言程序是我们的终极目标。那么&#xff0c;怎样才能写好这样的程序呢&#xff1f;首先&#xff0c;我们要用C语言的思维方式来进行程序的构架构建&#xff1b;其次&#xff0c;要有良好的…