10种流行的Java框架[通俗易懂]

10种流行的Java框架[通俗易懂]任何框架都是有助于更快更好地开发软件解决方案的工具之一。框架的基本原理不必重新发明轮子。框架使开发人员的工作变得更轻松,并帮助他们专注于业务逻辑,而不必担心通用的代码段。而且由于Java并不是最简单的编程语言之一,因此框架在这里绝对是有用的工具。在本文中,我收集了一些最流行,最有价值的框架,这些框架可以帮助您进行Java应用程序开发。1.Spring这是其他Java框架中的绝对领导者。掌握Spring是Java开发人员职位最普遍的要求之一。造成这种情况的原因很多,但主要的.

大家好,又见面了,我是你们的朋友全栈君。

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

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

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

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

10种流行的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受欢迎程度的统计数据:

10种流行的Java框架

 

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

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

2.Play

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

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

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

优点:

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

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

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

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

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

· 易于上手。

缺点:

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

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

10种流行的Java框架

 

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的受欢迎程度逐渐提高。现在,对该框架的兴趣有所降低:

10种流行的Java框架

 

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年,并且开始缓慢下降:

10种流行的Java框架

 

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的受欢迎程度正在逐步提高:

10种流行的Java框架

 

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的普及率一直在下降:

10种流行的Java框架

 

GitHub星级:4,3K。

7. MyBatis

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

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

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

优点:

· 简便快捷的发展;

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

· 非常适合编写纯SQL。

缺点:

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

· 数据库可移植性差。

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

10种流行的Java框架

 

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年达到顶峰,现在开始缓慢下降:

10种流行的Java框架

 

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技术相比,提供了许多组件,布局和不同的侦听器;

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

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

缺点:

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

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

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

10种流行的Java框架

 

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逐渐失去了知名度:

10种流行的Java框架

 

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

结论

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

如果您要添加任何内容,我们很乐意在下面的评论中阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156545.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 分布式、多线程、高并发都不懂,拿什么去跳槽

    分布式、多线程、高并发都不懂,拿什么去跳槽当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确…

  • Python学习【第五篇】循环语句「建议收藏」

    Python学习【第五篇】循环语句「建议收藏」Python循环语句接下来将介绍Python的循环语句,程序在一般情况下是按顺序执行的。编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句允许我们执行一个语句或语句组多次。Python

  • javascript 使用btoa和atob来进行Base64转码和解码

    javascript 使用btoa和atob来进行Base64转码和解码老是记不住这两个函数,干脆写下来,比较好翻。avascript原生的api本来就支持,Base64,但是由于之前的javascript局限性,导致Base64基本中看不中用。当前html5标准正式化

  • 1、win10下的python3.5.4安装

    现在越来越多人入坑python了,当然我也不例外。作为一个java程序员的我,在空余时间就慢慢学习python了 。第一件事就是安装Python啦。(主要以Python 3.5.4为例)一、官网下载安装包官网地址:https://www.python.org/downloads/windows/ 都说越新越好嘛,其实我觉得都差不多,但是3.6跟3.5还是有点区别的嘛,所以我…

    2021年11月30日
  • jquery setinterval_jquery validate

    jquery setinterval_jquery validate今天在使用jQuery的setInterval时总是不能成功,在网上找了一下,发现别人的也有很多错误,最后发现了setInterval的使用方法。下面上整个代码,如果要使用,要自己加入jQuery包:$(function(){  setInterval(showTime,2000); functionshowTime() {     vartoda

  • drupal学习教程(待续)「建议收藏」

    drupal学习教程(待续)「建议收藏」1.drupal模块安装a.安装captcha模块–>模块–>用户贡献的模块–>b.启用captcha模块–>模块–>选择–>保存配置c.汉化captcha模块打开https://localize.drupal.org/translate/languages/zh-hans下载captcha汉化包–>配置–>翻译–>导入b.配置capt

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号