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

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

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

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

10种流行的Java框架相关推荐

  1. 几种流行Webservice控制框架

     转会[http://blog.csdn.net/thunder4393/article/details/5787121],写的非常好,以收藏. 1      摘要 开发webservice应用程序中 ...

  2. Web前端:当今10个流行的JavaScript框架

    ​ 谈到Web开发,JavaScript框架是当今时代最受开发者和企业青睐的平台之一.可能,你也有机会尝试一两个流行的JavaScript框架.JavaScript正以极快的速度发展,迫使你不断学习新 ...

  3. 10种简单的Java性能优化

    是否正打算优化hashCode()方法?是否想要绕开正则表达式?Lukas Eder介绍了很多简单方便的性能优化小贴士以及扩展程序性能的技巧. 最近"全网域(Web Scale)" ...

  4. java框架_2020年9个最流行的Java框架

    从1995年以来,Java已被134,861个网站广泛使用,其中包括阿里巴巴,EPSON,SnapDeal等网站.Java已经成为定制化软件开发的顶级通用语言. Java被广泛用于科学和教育,金融,法 ...

  5. (三)四种流行的RPC框架(Dubbo/Motan/Thrift/Grpc)

    目录 ● Dubbo ● Motan ● Thrift ● Grpc 上述四种流行RPC框架的对比 ● Dubbo 本来阿里2014年就不在维护Dubbo了,直到2017年9月份又恢复了维护,可能一来 ...

  6. 10 种常用的CSS框架,收藏一下

    文章目录 1.Bootstrap 2. Foundation 3. Materialize CSS 4. Semantic UI 5. Bulma 6. UIKit 7. PureCSS 8. Tai ...

  7. [导入]几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比

    AJAX是web20的基石,现在网上流行几种开源的AJAX框架,比如:jQuery,Mootools,Dojo,Ext JS等等,那么我们到底在什么情况下该使用那个框架?以下是一组摘抄的数据: Aja ...

  8. 10种流行的机器学习算法进行泰坦尼克幸存者分析

    还记得上世纪轰动全球的泰坦尼克吗? 1912年4月,正在处女航的泰坦尼克号在撞上冰山后沉没,2224名乘客和机组人员中有1502人遇难,这场悲剧轰动全球,遇难的一大原因正式没有足够的就剩设备给到船上的 ...

  9. 10 种流行的 Web 挖掘工具

    互联网有数不清的网页,且不断在以指数级速度产生新内容.到 2022 年,整个互联网创建和复制的数据将达到 44 ZB,也就是 44 万亿 GB.这么大体量内容的背后也带来了丰富信息源,唯一的问题是怎么 ...

  10. (转)几种流行的JS框架的选择

    目前来看,JS框架以及一些开发包和库类有如下几个,Dojo .Scriptaculous .Prototype .yui-ext .Jquery .Mochikit.mootools .moo.fx ...

最新文章

  1. eclipse或者myeclipse的代码提示功能
  2. 我的Android进阶之旅------gt;Java全角半角的转换方法
  3. Angular复习笔记(一)
  4. android移动应用开发思维导图_这些地方应用思维导图就对了
  5. No rule to make target ...
  6. 蓝桥杯 ALGO-113 算法训练 数的统计
  7. 工控c语言培训,[转载]最完整的工控培训、PLC培训教程大全
  8. 【树莓派】利用tesseract进行汉字识别
  9. iphonex蓝牙打不开转圈_多人反应iPhone X蓝牙连接时遇到问题
  10. R语言解读多元线性回归模型
  11. SP10108 BALLOT - Distributing Ballot Boxes(二分查找)
  12. 分体式耳机是什么意思?2021年高音质分体式蓝牙耳机推荐
  13. scratch二次开发(一)
  14. 20154312 曾林 ExpFinal CTF Writeup
  15. Django分页组件
  16. 【理解数据结构】队列的实现(C语言)
  17. 项目案例——电商网站
  18. 密钥ssh 配置操作
  19. 深富策略:极限反转 行情反攻开启
  20. jQuery幸运大转盘

热门文章

  1. SIP协议-01 简介与入门
  2. Unity+JetBrainsRider2020+EmmyLua调试Lua(XLua)
  3. Rider+EmmyLua lua代码高亮设置
  4. 基于聚合数据的移动联通基站API接口的php完整代码实例
  5. 磁共振中的T1, T2 和 T2*的原理和区别
  6. 画法几何及计算机制图,画法几何及机械制图(第2版)范思冲-第十二章 计算机绘图基础.pptx...
  7. AutoJs学习-音量键控制脚本运行
  8. JAVA实现经纬度转换小数的工具类
  9. h3c交换机服务器无响应,华为(H3C)交换机版本升级遇到的问题总结
  10. suse linux 10 下载,SUSE Linux 10下载