首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >流行的9个Java框架介绍: 优点、缺点等等

流行的9个Java框架介绍: 优点、缺点等等

作者头像
程序你好
发布于 2018-07-23 02:08:26
发布于 2018-07-23 02:08:26
4.1K0
举报
文章被收录于专栏:程序你好程序你好

在2018年,Java仍然是世界上最流行的编程语言。它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员。虽然Java不是最直接的语言,但是您不需要从头编写Java程序。有许多优秀的Java框架可以编写在Java虚拟机上运行的web和移动应用程序、微服务和REST api

Java框架允许您关注应用程序的业务逻辑,而不是编写数据库连接或处理异常等基本功能。此外,如果您有Java方面的经验,您可以快速入门。这些框架都使用相同的语法,使用相似的术语、范例和概念。

Play: Reactive Web and Mobile Framework for Highly Scalable Java Applications

Play框架可以为桌面和移动接口构建轻量级的、web友好的Java和Scala应用程序。Play是一个非常受欢迎的框架,被领英(LinkedIn)、三星(Samsung)、沃尔玛(Walmart)、卫报(Guardian)、威瑞森(Verizon)等公司使用。

Play经常与其他编程语言的强大web框架相比较,比如Ruby的Ruby on Rails框架,PythonDjango框架。实际上,Play是一个独特的Java框架,因为它不依赖于Java EE标准。相反,它打算消除传统Java web开发的所有不便,比如开发周期缓慢和配置过多。它尽可能地类似于脚本语言的web框架(PHP、Python、Ruby等)。

在底层,Play构建在Akka工具包之上,该工具包简化了在Java虚拟机上创建并发和分布式应用程序。因此,Play使用了一个完全异步的模型,可以带来更好的可扩展性,特别是因为它还遵循无状态原则。

Play框架通过提供热代码重载、约定优于配置以及浏览器中的错误消息等特性,将开发人员的工作效率放在首位。此外,它是一个反应系统,它遵循现代的系统架构(响应性、弹性、弹性和消息驱动)来实现更灵活和容错的结果。

PrimeFaces: UI Framework for Java EE and JavaServer Faces

PrimeFaces是一个流行的web框架,用于为Java EE和JavaServer Faces(见上面)应用程序创建轻量级用户界面。它被许多财富500强公司、政府机构和教育机构使用。

PrimeFaces库确实是轻量级的。它打包为一个JAR文件,需要零配置,并且没有任何依赖项。通过提供丰富的组件集(100+)、内置的皮肤框架和预先设计的主题和布局,它允许您为Java应用程序创建用户界面。由于PrimeFaces构建在JavaServer Faces之上,它继承了一些特性,比如快速应用程序开发。您还可以向任何Java项目添加框架。

在PrimeFaces网站上,你可以找到一个很好的展示所有的早期组件、模板和主题的展示。这些组件带有相关的代码片段,您可以快速地将它们复制/粘贴到应用程序中,或者在必要时对它们进行调整。例如,这里有一个水平的mega菜单,允许您一起显示根项的子菜单。

PrimeFaces也有一个很棒的主题设计器,这是一个基于sassbased的主题引擎,有超过500个变量、一个示例主题和字体图标。而且,如果你不想自己构建一个主题,你也可以下载一个社区主题或者购买一个高级的主题画廊。

Spark Framework: Micro Framework for Web Apps and REST APIs

Spark框架是Java和Kotlin编程语言的一个微型框架和领域专用语言。Kotlin也在JVM上运行,它与Java的互操作性是100%的。使用Spark,您可以轻松地开发web应用程序、微服务和REST api。

微框架最初出现在Ruby和PHP等脚本语言中,由于专注于开发速度和简单性,很快获得了广泛的关注。Spark受到Sinatra为Ruby开发的web应用框架的启发,并于2011年首次发布。它不是MVC框架,但它可以让你随心所欲地构建你的应用程序。与大多数微框架一样,它有一个小的代码库,需要最少的配置,并且不需要编写太多的样板代码。

事实上,您可以在几分钟内启动Spark框架并运行。默认情况下,它在嵌入框架的Jetty web服务器上运行。但是,您也可以在其他Java web服务器上使用它。根据Spark自己的调查,超过50%的用户使用该框架创建REST api,这可以被视为它最流行的用例。Spark还支持高通信量的web应用程序,每天服务超过10,000个用户。

Spring Framework: Enterprise-level Java Application Framework

Spring框架可能是最知名的Java框架,拥有巨大的生态系统和活跃的社区。它允许您构建企业级Java应用程序、web服务和微服务。

Spring框架最初是一个依赖注入工具,但是,多年来,它已经发展成为一个全面的应用程序框架。它为您提供了一个包含所有内容的编程和配置模型,该模型支持通用任务,如建立数据库连接或处理异常。除了Java之外,您还可以与Kotlin和Groovy一起使用这个框架,它们都在Java虚拟机上运行。

Spring框架利用了控制反转(IoC)软件设计原则,根据该原则,框架控制定制的代码(而不是传统的编程,将自定义代码调用到处理通用任务的其他库中)。因此,您可以为您的Spring应用程序创建松散耦合的模块。

尽管Spring框架非常适合构建企业级Java应用程序,但它确实有一条陡峭的学习曲线。这是因为它是一个广泛的框架,它打算为可能出现在企业级应用程序中的每个任务提供解决方案,并且还支持许多不同的平台。因此,配置、设置、构建和部署过程都需要多个您可能不希望处理的步骤,尤其是在处理较小的项目时。Spring Boot(与Spring框架不同)是这个问题的解决方案,因为它允许您更快地设置Spring应用程序,配置更少。

Struts: MVC Framework for Enterprise-level Java Applications

Struts是由Apache Software Foundation维护和开发的全功能Java web应用程序框架。与Spring框架相比,它是一个拥有庞大社区的坚实平台。Struts允许您创建企业级Java应用程序,随着时间的推移,这些应用程序很容易维护。

它遵循MVC软件设计模式,并且有一个基于插件的体系结构。插件使扩展框架以适应不同的项目需求成为可能。Struts插件是基本的JAR包。因此,它们是可移植的,您也可以将它们添加到应用程序的类路径中。一些插件与框架绑定(JSON插件、REST插件、配置浏览器插件等),而您可以从第三方源添加其他插件。

您可以将Struts与其他Java框架集成在一起,以执行不构建到平台中的任务。例如,可以使用Spring插件进行依赖注入,或者使用Hibernate插件进行对象关系映射。Struts还允许您使用不同的客户端技术来构建应用程序的前端,例如javascript页面或具有角度的HTML。

但是,如果您希望创建可以在前端呈现的服务器端组件,那么Struts可能不是最好的选择。相反,您应该查看具有不同架构的框架,如Tapestry或Wicket(请参阅下面的两个框架)。另外,请注意,由于您仍然需要注意一些关键的安全漏洞,Struts最近受到了负面影响。

Tapestry: Component-oriented Framework for Highly Scalable Apps

Tapestry是一个基于组件的Java框架,可以创建可伸缩的web应用程序。它对可重用组件的关注使它在架构上类似于JavaServer Faces和Wicket框架。与Struts一样,Tapestry也是Apache软件基金会的一个项目。

可以将Tapestry页面和组件编写为普通的旧Java对象(pojo)。因此,您可以从框架访问整个Java生态系统。除了Java, Tapestry还支持Groovy和Scala,并与其他Java框架(如Hibernate和Spring)集成。Tapestry已经在设计中考虑到了性能。因此,它为您提供了动态类重载、异常报告、Ajax支持以及内置组件和模板等特性。

Tapestry也是一个开发人员友好的框架。它内置了促进测试驱动开发(TDD)的实用工具,并支持Selenium测试框架。Tapestry在单个服务器和服务器集群上可以很好地伸缩。使用Tapestry构建的应用程序在浏览器中运行得很快,因为它遵循了许多最佳实践,比如客户端缓存、对并发线程的支持、JavaScript聚合和压缩、集成GZip内容压缩等等。

Vaadin: Web Application Framework With a Focus on UX, Accessibility, and Mobile

Vaadin为您提供了一个简化Java开发的平台。它允许您构建以性能、用户体验和可访问性为重点的可定制组件的web应用程序。

关于Vaadin最有趣的事情是它的最新版本(就在几天前,也就是2018年6月)是如此的重要以至于连主要的媒体都报道了它。Vaadin 10以一种全新的方式接近web应用程序开发:它使开发人员能够直接从Java虚拟机访问DOM。在新版本中,Vaadin团队将之前的单片框架分为两部分。它有一个名为Vaadin Flow的轻量级Java框架,用于处理路由和服务器-客户端通信,以及一组在用户浏览器中运行的UI组件。

这些组件是移动优先的,遵循最新的web和可访问性标准;它们是基于Web组件标准构建的。您可以将Vaadin组件与任何前端框架(如React、angle或Vue)一起使用。创建者们还推荐它们作为渐进式Web应用的构建模块。您可以基于Vaadin组件构建您自己的主题,或者使用Vaadin的两个预定义主题:Lumo(默认)和材料。

Vaadin流为您提供了一个高级Java API来管理应用程序的所有技术方面,从通过WebSockets进行的服务器-客户端自动通信到数据绑定。随着流在JVM上运行,您可以访问整个Java生态系统。例如,您可以使用Spring Boot运行应用程序。Flow还允许您在Kotlin或Scala中编写应用程序。

Vert.x: Polyglot Event-driven Application Framework for the Java Virtual Machine

Vert.x是在Java虚拟机上运行的一个多语言框架。它允许您用编程语言编写应用程序,如Java、JavaScript、Groovy、Ruby、Scala和Kotlin。它的事件驱动的体系结构导致应用程序能够很好地伸缩,即使使用最少的硬件资源。

Vert.x是由Eclipse Foundation开发和维护的,Eclipse Foundation最著名的项目是用于Java开发的Eclipse IDE。而且,谁会比Eclipse的创建者更了解Java呢?绿色的“x”。x是它的多语言性质,意思是您可以用几种不同的语言编写有效的代码。它为每一种受支持的编程语言提供惯用api。

Vert.x是一个事件驱动的、非阻塞的框架,它可以使用最少的线程来处理大量的concurrency。绿色。x也是相当轻量级的,核心框架仅重约650 kb。它有一个模块化的架构,允许你只使用你需要的模块,这样你的应用程序就可以尽可能的灵活。绿色。如果您想构建轻量级、高度可伸缩的微服务,那么x是一个理想的选择。

Wicket: Component-based Web Application Framework for Purists

Wicket是一个基于组件的web应用程序框架,类似于JavaServer Faces和Tapestry。它允许您使用纯Java和HTML代码编写优雅、用户友好的应用程序。该框架由Apache Software Foundation维护,就像Struts和Tapestry一样。

由于Wicket是一个基于组件的框架,所以Wicket应用程序由可重用的页面和组件(如图像、按钮、链接、表单等)组成。Wicket应用程序的编程以pojo为中心,因此组件也是具有封装和继承等面向对象特性的普通Java对象。组件被打包成可重用的包,因此您可以向它们添加自定义的CSS和JavaScript。

Wicket通过为超过25种语言提供开箱即用的支持,使应用程序、页面和组件国际化。它内置的Ajax功能允许您实时更新页面的某些部分,而不需要编写任何JavaScript代码。Wicket也注意安全的URL处理。组件路径是会话相关的,url不会显示任何敏感信息。

结论

当涉及到Java框架时,请保持开放的心态,并进行研究,找出最适合您的框架。有很多框架可以适合您的项目,所以使用这个指南来评估您的需求。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序你好 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【大牛经验】Java开源web框架汇总(152款)
“框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架; 在研究好用和新框架。 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制作,会陆续分享!!! 152款框架,你还知道其他的吗? 留言你用过的web框架 Java开源web框架汇总 1 Struts2 Struts2是一个web应用框架。它不是一个Struts的新的发布版本,而是一个全新的框架。Struts2 是第二代基于Model-View-Controller (MVC)模型的web应用框架。 Struts2是java
Java帮帮
2018/03/15
6.3K0
【大牛经验】Java开源web框架汇总(152款)
Java程序员最亲睐的Web框架
只有少数几种语言像Java一样提供了各种各样的web框架,上面的统计图就是一个证据。下面是其他开发者所使用web框架列表:
Java团长
2018/07/23
9050
Java程序员最亲睐的Web框架
调查:Java程序员最亲睐的Web框架
只有少数几种语言像Java一样提供了各种各样的web框架,上面的统计图就是一个证据。下面是其他开发者所使用web框架列表:
哲洛不闹
2018/09/18
1.1K0
调查:Java程序员最亲睐的Web框架
2016 年 7 个最佳的 Java 框架
毫无疑问,Java是目前最需要的编程语言之一。在这里,我们已经挖掘了一些关于框架趋势的有用信息,以减轻全球软件开发人员的日常工作。
Java团长
2018/07/23
1.9K0
2016 年 7 个最佳的 Java 框架
2020 年国外 9 个顶级的 Java 框架,你知道几个?
https://towardsdatascience.com/9-top-java-frameworks-for-2020-1cc9d3c21f4c
纯洁的微笑
2020/02/12
2.6K0
大数据开发:你必须掌握的JAVA几大框架
Spring框架是由于软件开发的复杂性而建立的。Spring使用的是最基础的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途它不仅仅限于服务器端的开发。从简单、可测试和松耦合性等方面来讲,绝大部分Java应用都是可以从Spring中获得好处的。
成都加米谷大数据
2021/02/01
1.3K0
大数据开发:你必须掌握的JAVA几大框架
简洁、高效、灵活:探索 Spring 同级别的编程框架
作为一个Java开发者,Spring框架应该基本上都用过的,由于Spring框架太过于强大,导致我们可能只知道Spring框架,但其实还有很多优秀的框架可以供我们使用,本文将介绍6个和spring框架类似的框架。
索码理
2023/09/23
1.7K0
简洁、高效、灵活:探索 Spring 同级别的编程框架
JAVA常用框架及漏洞[通俗易懂]
1. MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情:
全栈程序员站长
2022/07/18
4K0
2020年9大热门Java框架
Java 编程语言的最新版本 Java 13 于 2019 年 9 月发布。根据 TOIBE 排行榜(根据排名最高的 25 个搜索引擎计算),Java 排在第一位。
加米谷大数据
2020/01/03
8060
Top Java Frameworks Analysis for 2020
Java has demonstrated itself to be the top universally useful programming language for custom programming development.
用户4822892
2019/12/18
7260
Top Java Frameworks Analysis for 2020
2020 年 9 大顶级 Java 框架出炉!
自 1995 年推出以来,Java 已被 134861 个网站(如ESPN,SnapDeal,阿里巴巴等)使用。在 24 年的发展历程中,Java 已证明自己是为软件开发而生的顶级通用编程语言。
Bug开发工程师
2020/02/14
1.8K0
Java学习资料汇总
国外的攻城师,总结的有关Java的资料,各位美女,帅哥们,可以利用周末,慢慢的品味了。 构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。 Gradle:Gradle采用增量构建。Gradle通过Groovy编程而不是传统的XML声明进行配置。Gradle可以很好地配合Maven进行依赖管理,并且把Ant脚本当作头等公民。
我是攻城师
2018/05/11
2.2K0
【Web后端架构】2022年10个最佳Web开发后端框架
Web开发通常分为两类:前端开发和后端开发。后端开发人员负责构建web应用程序的服务器端。
架构师研究会
2022/05/16
4.9K0
awesome-java-cn
Java 资源列表,内容包括:构建工具、数据库、框架、模板、安全、代码分析、日志、第三方库、书籍、Java 站点等等。 古董级工具 这些工具伴随着Java一起出现,在各自辉煌之后还在一直使用。 Apache Ant:基于XML的构建管理工具。官网 cglib:字节码生成库。官网 GlassFish:应用服务器,由Oracle赞助支持的Java EE参考实现。官网 Hudson:持续集成服务器,目前仍在活跃开发。官网 JavaServer Faces:Mojarra是JSF标准的一个开源实现,由Oracle开
guanguans
2018/05/09
4.4K0
Java微框架的兴起,流行微服务框架点评
随着微服务和轻量级REST API的日益流行,我们目睹了Java的另一个趋势:Java微框架的崛起。Javalin, Micronaut, Spark 和其他很多东西让构建REST api变得轻而易举。在本文中,我将研究这个令人兴奋的领域,并分享我对它们使用的看法。
程序你好
2018/07/23
2.9K0
Java微框架的兴起,流行微服务框架点评
【小白写工程】关于Maven的Archetype
我们新建Maven选择框架的时候,面临许多选择,那么现在就让我们来看看,这些框架都是什么含义。
为了伟大的房产事业
2024/03/15
2960
【小白写工程】关于Maven的Archetype
Java进阶-主流框架总结与详解(下)
MyBatis是一个优秀的持久层框架,通过XML或注解的方式将Java方法映射到SQL查询。MyBatis相比Hibernate,更加灵活,更适用于需要对SQL进行精细控制的场景。它支持动态SQL、延迟加载、存储过程调用等特性,为开发者提供了丰富的操作数据库的方式。
Damon小智
2024/03/18
1670
Java进阶-主流框架总结与详解(下)
Java框架介绍
MongoDB是 个基于分布式文件存储的数据库,使用C++语言编写。旨在为Web应用提供可扩展的高性能数据存储解决方案。应用性能高低依赖于数据库性能,MongoDB则是非关系数据库中功能较丰富,较像关系数据库的,随着MongDB 3.4版本发布,其应用场景适用能力得到了进 步拓展。   MongoDB的核心优势就是灵活的文档模型、高可用复制集、可扩展分片集群。
全栈程序员站长
2022/08/04
1.4K0
Java框架总结
本系列用来记录常用java框架的基本概念、区别及联系,也记录了在使用过程中,遇到的一些问题的解决方法,方便自己查看,也方便大家查阅。
全栈程序员站长
2022/09/15
1K0
Java框架总结
TSS翻译:帮我选一个Java Web开发框架吧
最近 TheServerSide.com 上一篇文章引起了常常的讨论。地址见这里:Chose a web client framework。
田春峰-JCJC错别字检测
2022/05/07
5620
相关推荐
【大牛经验】Java开源web框架汇总(152款)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档