任何框架都是帮助更快更好地开发软件解决方案的工具之一。框架的基础不必重新发明轮子。框架让开发人员的生活更轻松,并帮助他们专注于业务逻辑,而不是担心常见的代码片段。而且由于Java不是最简单的编程语言之一,框架在这里绝对是一个有用的工具。在本文中,我收集了一些流行且最有价值的框架,它们可以帮助您进行Java应用程序开发。1.Spring这是Java框架中绝对的佼佼者。掌握Spring是Java开发人员职位最常见的要求之一。这有很多原因,但最主要的是普遍性。Spring是一个功能强大、轻量级且最受欢迎的JavaEE框架。正如开发人员自己所说:Spring使Java变得简单、现代、高效、响应迅速且支持云。它以依赖注入和面向方面的编程特性而闻名。事实上,它是框架的容器,允许您执行任何复杂的任务——从使用数据库到测试程序。开发人员更有可能选择SpringMVC和SpringBoot。这些框架的最大优点是能够分离其他模块并由于控制反转(IoC)而专注于一个模块。优点:使用POJO(PlainPlainJavaObjects)可以使代码库更简单、更灵活;支持模块化(有很多包和类);向后兼容性和易于测试;大型生态系统(SpringBoot、SpringCloud)和社区;广泛的文档和多个Spring教程。缺点:配置不太容易陡峭的学习曲线为了检查每个框架的受欢迎程度,使用了GoogleTrends。下面是近5年Spring流行度的统计:如前所述,Spring在Github上有一个非常活跃的社区和37Kstars。2.PlayPlay是另一个大多数开发人员喜欢的轻量级框架。它允许您使用Java和Scala构建Web应用程序。它旨在满足现代移动和Web应用程序的需求。Play基于无状态、网络友好且轻量级的架构。主要区别特征包括高速、高质量和良好的可扩展性。它建立在Akka之上,提供了以更高层次的方式思考的敏捷性——不是如何处理数据元素,而是如何处理事物的流动。该框架有一个异步API,允许您在不引入额外资源的情况下扩展您的应用程序。该框架为各种微服务模式提供了出色的支持。优点:由于热代码重新加载提高了效率;Play是可插拔的、可配置的、可定制的,因此非常灵活;易于调试:Play可以在开发者模式下处理运行时和编译错误;建立在Netty之上,支持非阻塞I/O;开源,一切都在幕后运作良好;容易上手。缺点:Play2基本上是Play1的重写;围绕异步I/O构建,这意味着编写“稍后再做”代码。Github星数:116,000。该框架已经被LinkedIn、三星、TheGuardian、Verizon等大公司使用,这证实了它的可靠性。3.SparkSparkFramework是Java和Kotlin编程语言的微框架和领域特定语言。Kotlin也运行在JVM上,并且与Java100%互操作。使用Spark,您可以轻松开发Web应用程序、微服务和RESTAPI。事实上,您可以在几分钟内启动并运行Spark框架。默认情况下,它运行在框架中嵌入的JettyWeb服务器上。但是,您也可以将它与其他JavaWeb服务器一起使用。优点:专为提高生产力而设计;让您充分利用JVM;易于启动和运行;可扩展,您可以插入任何模板引擎。缺点:仅适用于创建小型Web应用程序或API后端。2016年到2018年间,Spark的知名度逐渐上??升。现在,对该框架的兴趣有所下降:Githubstars:8,8K。Spark被Arquillian、Apache、Asana、Playlife等公司使用。4.JHipsterJhipster是最新的Java框架之一。它于2013年发布。Jhipster将SpringBoot、Angular和React集成到一个大型框架中。它允许您轻松构建基于Java的现代Web应用程序。SpringBoot内置于框架中,允许您开发基于Spring的应用程序。除了Angular和React,JHipster还包括Bootstrap。该框架允许开发人员在两种类型的架构之间进行选择:整体架构和微服务架构。在第一种情况下,前端和后端集成到一个应用程序中,在第二种情况下-它们是分开的。顺便说一下,Adobe、西门子、博世、HBO和谷歌等品牌都在使用JHipster。优点:使用许多预配置技术轻松引导新项目;遵循后端和前端开发的最佳实践和最新趋势;拥抱Docker和Kubernetes的云原生原则;开箱即用的登录、登录、用户管理和监控功能;只有您选择的那些技术才会包含在项目中。缺点:要和JHipster一起使用,最好先熟悉一堆技术;从端点返回的REST响应并不总是符合业务需求;并非所有选项都在同一级别上可用。根据Google的说法,JHipster的受欢迎程度在2018年达到顶峰,然后开始缓慢下降:Githubstars接近Playgame:162k。使用JHipster的公司:Adobe、CGI、BOSCH、HBO、Siemens等。5.BladeBlade是一个轻量级的Java8+MVC框架。当我们谈论Blade的轻量时,我们指的是它的源代码大小,不超过500KB。要使用Blade,您需要创建一个常规的Maven项目。Blade提供了Java9所具有的模块化支持。它还支持许多JavaWeb组件。优点:重量轻;模块化:您可以选择使用哪些组件;支持插件扩展和Webjar资源;嵌入式码头服务器和模板引擎支持;RESTful风格的路由;支持JDK1.6及以上版本。缺点:仅对创建小型MVC应用程序有帮助;主站点上的文档是中文的(但确实有英文文档)。Google的综合统计显示,Blade的受欢迎程度正在逐渐增加:Githubstars:5,3K。6.Hibernate说到最好的Javaweb框架,Hibernate是不能忽视的。Hibernate是一个ORM(对象/关系映射)框架。它允许您不使用SQL而是使用Java向数据库服务器编写查询,通常会改变数据库的总体外观。虽然Hibernate不是一个成熟的框架,但它允许您轻松地转换来自各种数据库的信息。此功能还简化了扩展,无论应用程序大小和用户数量如何。总的来说,这个框架可以用快速、强大、易于扩展和定制来形容。它是根据GNULesserGeneralPublic2.1许可证分发的免费软件。优点:Hibernate使您能够通过对代码进行微小的更改来与任何数据库进行通信。MySQL、Db2或Oracle、Hibernate与数据库无关;查询相同错误目录的缓存设施;N+1或慢速加载支持;数据丢失的风险低,需要更少的电力。缺点:如果断电,您可能会丢失所有数据。重新启动可能会非常慢。查看下面的图表,我们可以看到Hibernate的受欢迎程度在这5年中一直在下降:GitHubStars:4,3K。7.MyBatisMyBatis是Java编程的映射框架。它简化了将Java应用程序与SQL数据库链接的过程:它充当它们之间的中间件。通常,您将需要Java数据库连接API来将您的应用程序连接到关系数据库。MyBatis简化了这个过程。它使开发人员仅使用几行代码即可执行基本的SQL操作。MyBatis可以与Hibernate框架进行比较。它们都代表了应用程序和数据库之间的一种桥梁。唯一的区别是MyBatis没有将Java对象映射到关系数据库。优点:开发简单快速;XML标记,支持动态SQL语句编写;非常适合写纯SQL。缺点:SQL可能绑定到特定的数据库供应商。数据库可移植性差。根据Google的数据,对该框架的兴趣正在逐渐增加:GithubStars:13.6K。8.StrutsStruts是一个用于创建企业级JavaWeb应用程序的开源MVC(模型-视图-控制器)框架。最初的Struts框架(Struts1.x)在2007年与WebWork框架合并时重建。Struts1.x和Struts2.x不可互换,因为它们之间存在重要差异。您可以从StrutsReleases页面下载它。该框架的主要优点是它的可移植插件或JAR包。在这种情况下,Hibernate和Spring插件可以分别用于对象关系映射和依赖注入。该框架还通过成功组织Java、JSP和Action类来帮助减少总体开发时间。优点:使用简单,基于MVC设计模式;与REST、JSON和AJAX一起工作;通过插件与其他Java技术集成;支持主题和模板;使用简单的基于POJO的操作。缺点:难以浏览文档;不适合较小的应用程序。Google显示Struts的流行度在2016-2018年达到顶峰,现在正在慢慢下降:Github评分不高:1kstars。Synopsys、ExpertIO、NsysDesignSystems和其他公司使用Struts。9.VaadinVaadin是一个开放源代码的客户端-服务器框架,它允许您使用预先设计的UI组件创建Web应用程序。它专为业务应用程序而构建,强调可访问、美观和直观的用户界面。Vaadin允许您使用纯Java编写UI,而不会陷入JS、HTML和CSS的泥潭。此外,您可以使用HTML或可视化设计器创建布局。Vaadin提供直接从Java虚拟机访问DOM。此外,它还带有可以通过样式API自定义的现成主题。在Vaadin8之前,客户端是基于GWT的。Vaadin10是框架的重大改进:客户端完全重写,GWT被移除,Vaadin在客户端切换到WebComponents标准和GooglePolymer。新的Vaadin组件是一组Web组件,可以与其他前端JavaScript技术(例如React和Vue,甚至是纯JavaScript)结合使用。优点:开发人员生产力高,开发速度快;基于WebComponents标准构建;与任何传统网络技术相比,提供许多组件、布局和不同的监听器;自动化客户端-服务器通信和路由;有很好的文档和活跃的社区。缺点:与其他可用技术相比可扩展性较差;对于大型应用程序,初始加载可能很慢。至于受欢迎程度,它正在慢慢下降:Github评级:1,6K星。Vaadin被Docucom、AXPM、CGI、HPDLendScape等使用。10.JavaServerFaces(JSF)JSF是一种JCP标准技术,用于在JavaEE平台上编写基于组件的用户界面。该框架可能不是最好的,但最大的优点是Oracle支持、许多其他工具、出色的文档和友好的社区。JSF可用于创建企业应用程序、本机程序和Web开发。开发人员通过在页面中组装可重用的UI组件、将这些组件连接到应用程序数据源并将客户端生成的事件连接到服务器端事件处理程序来构建Web应用程序。优点:JSF是JavaEE的重要组成部分,对于使用IDE软件的开发者来说非常方便。缺点:要使用JavaServerFaces,最好具备良好的Java知识、对一般Web技术的理解以及在没有任何框架的情况下在Web上工作的经验。根据下图,JSF正在逐渐失去人气:如前所述,JSF不是最好的技术,但它对IDE软件很有用。结束语Java框架被认为是当今对开发人员最重要的支持,因此仍然存在。我试图列出其中最有前途和最有用的。最主要的是为特定项目选择最合适的框架。
