10种流行的Java框架

Java
385
0
0
2023-07-22
标签   Java框架

任何框架都是有助于更快更好地开发软件解决方案的工具之一。

框架的基本原理不必重新发明轮子。 框架使开发人员的工作变得更轻松,并帮助他们专注于业务逻辑,而不必担心通用的代码段。

而且由于 Java 并不是最简单的编程语言之一,因此框架在这里绝对是有用的工具。

在本文中,我收集了一些最流行,最有价值的框架,这些框架可以帮助您进行Java应用程序开发。

1. Spring

这是其他Java框架中的绝对领导者。 掌握Spring是Java开发人员职位最普遍的要求之一。 造成这种情况的原因很多,但主要的原因是普遍性。

Spring是一个功能强大,轻量级且最受欢迎的Java EE框架。 正如开发人员自己所说:Spring使Java变得简单,现代,高效,可响应,可用于云。 它以依赖注入和面向方面的编程功能而闻名。 实际上,它是框架的容器,使您可以执行任何复杂的任务-从使用数据库到测试过程。

开发人员更有可能选择Spring MVC和Spring Boot。 这些框架的最大优点是能够分离其他模块并由于控制反转(IoC)而专注于一个模块。

优点:

· 使用POJO(普通Java对象)可导致更简单,更灵活的代码库;

· 支持模块化(具有许多软件包和类);

· 向后兼容和易于测试;

· 庞大的生态系统(Spring Boot,Spring Cloud)和社区;

· 广泛的文档和多个Spring教程。

缺点:

· 不太容易配置

· 陡峭的学习曲线

为了检查每个框架的流行程度,使用了Google趋势。

以下是最近5年Spring受欢迎程度的统计数据:

Spring受欢迎程度有所下降,但总体情况表明,它正在逐年增长。

如前所述,Spring在 Github 上拥有非常活跃的社区和37K星。

2. Play

Play是大多数开发人员喜欢的另一个轻量级框架。 它允许您使用Java和 Scala 构建Web应用程序。 它是为满足现代移动和Web应用程序的需求而设计的。

Play基于无状态,网络友好且轻量级的体系结构。 主要区别特征包括高速,高质量和良好的可伸缩性。 它建立在Akka之上,并提供了以更高级的方式思考的敏捷性-不是与Data元素做什么,而是如何处理事物流。

该框架具有异步 API ,可让您扩展应用程序而无需引入其他资源。 该框架为各种 微服务 模式提供了出色的支持。

优点:

· 由于热代码重载而提高了效率;

· Play是可插入的,可配置的,可自定义的,因此很灵活;

· 易于调试:Play可以在开发人员模式下处理运行时错误和编译错误;

· 建立在Netty上,并支持非阻塞I / O;

· 开源,一切都在幕后运作良好;

· 易于上手。

缺点:

· Play2基本上是对Play1的重写;

· 围绕异步I / O构建,这意味着编写”稍后执行”的代码。

Github星星:11.6万。 该框架已被LinkedIn,三星,The Guardian,Verizon等主要公司使用,这证实了其可靠性。

3. Spark

Spark Framework是Java和Kotlin编程语言的一种微框架和特定于领域的语言。 Kotlin也可以在JVM上运行,并且可以与Java 100%互操作。 使用Spark,您可以轻松开发Web应用程序,微服务和REST API。

实际上,您可以在几分钟内启动并运行Spark框架。 默认情况下,它在嵌入框架的Jetty Web服务器上运行。 但是,您也可以将其与其他Java Web服务器一起使用。

优点:

· 专为提高生产力而设计;

· 让您充分利用JVM;

· 易于启动和运行;

· 可扩展,您可以插入任何模板引擎。

缺点:

· 仅适用于创建小型Web应用程序或API后端。

在2016年至2018年之间,Spark的受欢迎程度逐渐提高。现在,对该框架的兴趣有所降低:

Github星星:8,8K。 Spark被Arquillian,Apache,Asana,Playlife等公司使用。

4. JHipster

Jhipster是最新的Java框架之一。 它于2013年发布。Jhipster将Spring Boot,Angular和 React 集成到一个大型框架中。 它使您可以轻松构建基于Java的现代Web应用程序。

框架中内置了Spring Boot,可让您基于Spring开发应用程序。 除了Angular和React,JHipster还包含Bootstrap。 该框架允许开发人员在两种类型的体系结构之间进行选择:整体式和微服务。 在第一种情况下,前端和后端集成到一个应用程序中,在第二种情况下-它们是分开的。

顺便说一下,诸如Adobe,西门子,博世,HBO和Google等品牌都在使用JHipster。

优点:

· 轻松引导具有许多预配置技术的新项目;

· 遵循后端和前端开发的最佳实践和最新趋势;

· 拥抱Docker和Kubernetes的云原生原则;

· 开箱即用的登录,登录,用户管理和监视功能;

· 项目中仅包含您选择的那些技术。

缺点:

· 要与JHipster一起使用,最好先熟悉一堆技术;

· 从端点返回的 REST 响应并不总是符合业务需求;

· 并非同一级别上可用的所有选项。

根据Google的说法,JHipster的流行高峰是在2018年,并且开始缓慢下降:

Github明星离Play比赛很近:16.2万。 使用JHipster的公司:Adobe,CGI,BOSCH,HBO,Siemens等。

5.Blade

Blade是一个轻量级的Java 8+ MVC 框架。 当我们谈论Blade的轻巧性时,是指其源代码的大小,该大小不超过500KB。

要使用Blade,您需要创建一个常规的Maven项目。 Blade提供了Java 9具有的模块化支持。 它还支持许多Java Web组件。

优点:

· 轻巧;

· 模块化:可以选择要使用的组件;

· 支持插件扩展和Web jar资源;

· 嵌入式码头服务器和模板引擎支持;

· RESTful样式路由;

· 支持JDK 1.6及更高版本。

缺点:

· 仅有助于创建小型MVC应用程序;

· 主站点上的文档为中文(但确实有英文文档)。

Google的总体统计数据表明Blade的受欢迎程度正在逐步提高:

Github星星:5,3K。

6. Hibernate

在谈论最佳的Java Web框架时,不能忽视Hibernate。

Hibernate是一个ORM(对象/关系映射)框架。 它允许您不使用 SQL 而是使用Java将查询写到数据库服务器,这通常会改变数据库的常规外观。

尽管Hibernate并不是一个成熟的框架,但它使您可以轻松地转换各种数据库的信息。 无论应用程序大小和用户数量如何,此功能还可以简化扩展。 通常,此框架可以描述为快速,强大,易于扩展和可定制的。

它是在GNU Lesser General的公共2.1许可下分发的免费软件。

优点:

· Hibernate使您可以通过在代码中进行微小的更改来与任何数据库进行通信。

· MySQL, Db2 或Oracle,Hibernate与数据库无关;

· 缓存工具以查询相同的错误目录;

· N + 1或缓慢的加载支持;

· 数据丢失风险低,并且需要的功率更少。

缺点:

· 如果电源关闭,您可能会丢失所有数据。

· 重新启动可能非常慢。

查看下面的图表,我们发现在这5年中,Hibernate的普及率一直在下降:

GitHub星级:4,3K。

7. MyBatis

MyBatis是用于Java编程的映射框架。 它简化了将Java应用程序与SQL数据库链接的过程:它充当它们之间的中间件。

通常,您将需要Java数据库连接API才能将应用程序连接到关系数据库。 MyBatis简化了过程。 它使开发人员仅使用几行代码即可执行基本的SQL操作。

MyBatis可以与Hibernate框架进行比较。 它们都代表了应用程序和数据库之间的一种桥梁。 唯一的区别是MyBatis不会将Java对象映射到关系数据库。

优点:

· 简便快捷的发展;

· XML标记,支持动态SQL语句编写;

· 非常适合编写纯SQL。

缺点:

· SQL可能绑定到特定的数据库供应商。

· 数据库可移植性差。

根据Google的说法,对该框架的兴趣正逐渐增加:

Github星级:13.6K。

8.Struts

Struts是用于创建企业级Java Web应用程序的开源MVC(模型-视图-控制器)框架。 最初的Struts框架(Struts 1.x)在2007年与WebWork框架合并时进行了重建。 Struts 1.x和Struts 2.x不可互换,因为它们之间存在重要区别。 您可以从Struts的Releases页面下载。

该框架的主要优点是其可移植插件,即JAR软件包。 在这种情况下,Hibernate和Spring插件可分别用于对象关系映射和依赖项注入。 通过成功组织Java,JSP和Action类,该框架还有助于减少总体开发时间。

优点:

· 使用简单,基于MVC设计模式;

· 与REST,JSON和AJAX配合使用;

· 通过插件与其他Java技术集成;

· 支持主题和模板;

· 使用基于POJO的简单操作。

缺点:

· 难以浏览的文档;

· 不适合较小的应用程序。

谷歌显示Struts的知名度在2016-2018年达到顶峰,现在开始缓慢下降:

Github评分不高:1k星。 Synopsys,ExpertIO,Nsys Design Systems和其他公司使用Struts。

9.Vaadin

Vaadin是一个开放源代码客户端服务器框架,可让您使用预先设计的UI组件创建Web应用程序。 它是专门针对业务应用程序而构建的,重点是可访问,美观且直观的用户界面。

Vaadin允许您使用纯Java编写UI,而不会陷入JS,HTML和CSS的困境。 此外,您可以使用HTML或视觉设计器创建布局。 Vaadin可直接从Java虚拟机提供对DOM的访问。 此外,它还带有可以通过样式API自定义的现成主题。

在Vaadin 8之前,客户端是基于GWT的。 Vaadin 10是该框架的重大改进:完全重写了客户端,删除了GWT,并且Vaadin切换到Web组件标准和客户端上的Google Polymer。 新的Vaadin组件是一组Web组件,可以与其他前端JavaScript技术(例如React和Vue甚至纯JavaScript)结合使用。

优点:

· 高开发人员生产力和快速开发;

· 建立在Web组件标准上;

· 与任何常规Web技术相比,提供了许多组件,布局和不同的侦听器;

· 自动化客户端-服务器通信和路由;

· 拥有良好的文档资料和活跃的社区。

缺点:

· 与其他可用技术相比,可伸缩性较差;

· 大型应用程序的初始加载可能很慢。

至于受欢迎程度,它正在缓慢下降:

Github评分:1,6K星。 Vaadin由Docucom,AXPM,CGI,HPD LendScape等使用。

10. JavaServer Faces( JSF )

JSF是一种JCP标准技术,用于在Java EE平台上创作基于组件的用户界面。 该框架可能不是最好的框架,但是最大的好处是Oracle支持,许多其他工具,出色的文档以及友好的社区。

JSF可用于创建企业应用程序,本机程序和Web开发。 开发人员可以通过在页面中组装可重用的UI组件,将这些组件连接到应用程序数据源,并将客户端生成的事件连接到服务器端事件处理程序,来构建Web应用程序。

优点:

· JSF是Java EE的重要组成部分,对于使用IDE软件的开发人员来说非常方便。

缺点:

· 要与JavaServer Faces一起使用,最好具有丰富的Java知识,一般地了解网络技术,并在没有任何框架的情况下具有在网络上工作的经验。

根据下图,JSF逐渐失去了知名度:

如前所述,JSF并不是最好的技术,但对IDE软件却很有用。

结论

Java框架被认为是当今对开发人员最重要的支持,因此仍然存在。 我试图列出其中最有前途和有用的。 最主要的是为特定项目选择最合适的框架。