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

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python之文件操作大全

    Python之文件操作大全在日常工作或生活中,总避免不了需要操作文件或文件夹,比如希望找出电脑中所有临时文件并清除,或者找到指定文件夹内所有图片文件并进行重新命名等等,如果能通过Python脚本的方式解决,会大大提升相关操作效率,本文即总结使用Python进行常见操作相关知识点,方便用到的人随时查阅,不用再每次使用都要花费时间检索或查阅文档。本文主要使用os、shutil、pathlib三个包。一、文件操作1.1文件常规操作操作 代码 说明/示例 新建文件 os.mknod(dir…

    2022年5月7日
    43
  • SQL嵌套查询_sql嵌套查询返回多个字段

    SQL嵌套查询_sql嵌套查询返回多个字段说到嵌套查询,首先得理解嵌套查询是什么意思,简单来说就是,一个查询语句可以嵌套在另外一个查询语句的where子句中。外层的查询称为父查询(主查询),内层的查询称为子查询(从查询)。嵌套查询的工作方式是由内向外的,即先进行内层查询,外层查询则利用内层查询的结果集作为条件进行查询。当然,嵌套查询不仅仅是select语句的专属,它还可以用在update、insert、delete语句中。如(update…

    2022年8月10日
    3
  • pycharm怎么看函数源代码_python查看第三方库的源码

    pycharm怎么看函数源代码_python查看第三方库的源码pycharm查看python源代码

    2022年8月28日
    0
  • Android 系统 目录 分析「建议收藏」

    Android 系统 目录 分析「建议收藏」转自:hknote及Ophone8作者:Wanan.’s  及  O友今天要来分析一下Android文件系统的/system目录的结构。/system目录是在Android文件系统占有及其重要的位置,基本上所有的工具和应用程序都在这个目录下,我看来是一个真正的rootfs。他在Android手机中存放在nandflash的mtd3中,是一个yaffs2文件系统,在启动时被挂载在root

    2022年10月15日
    0
  • 人脸去重算法_哈希去重算法

    人脸去重算法_哈希去重算法对比其他算法『百度的去重算法』百度的去重算法最简单,就是直接找出此文章的最长的n句话,做一遍hash签名。n一般取3。工程实现巨简单,据说准确率和召回率都能到达80%以上。『shingle算法』shingle原理略复杂,不细说。shingle算法我认为过于学院派,对于工程实现不够友好,速度太慢,基本上无法处理海量数据。『其他算法』具体看微博上的讨论…

    2025年7月20日
    1
  • VS 2017 产品密钥

    VS 2017 产品密钥个人分类 nbsp vs2010Visual VS2017 企业版 Enterprise 注册码 NJVYC BMHX2 G77MM 4XJMR 6Q8QFVisualS VS2017 专业版 Professional 激活码 key KBJFW NXHK6 W4WJM CRMQB G3CDH 启动 VS 之后 在菜单栏有个帮助的下拉框 选择注册产品

    2025年7月16日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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