您的位置:首页 > 运维架构 > 网站架构

掌握透彻这15个Java框架,你也能轻松成为年薪百万的阿里架构师!

2020-01-11 15:53 549 查看

Java开发框架可以帮助开发人员更快地启动和运行应用程序,提供代码重用并消除构建样板代码的任务。

Blade:轻量级的MVC框架

该MVC框架基于Java 8和Netty Web服务器。Blade被描述为轻巧简单,提供了RESTful样式的路由接口,并且没有侵入式拦截器,文档状态。Blade的源代码小于500KB。
为了使用Blade构建应用程序,开发人员将创建一个通用的Maven项目。包括模板引擎支持和流式API样式。
Blade的开发始于2015年,目标是提供一个完整的Web框架。计划要求增加对Java 9中的模块化功能的支持, 并支持更多的Web生态系统组件。

Dropwizard:“ ops-friendly”网络服务

Dropwizard于2011年首次发布,是用于构建“ ops友好型” RESTful Web服务的框架。使用Dropwizard,您可以使用Jetty HTTP库或将HTTP服务器嵌入到项目中。Jersey JAX-RS实现允许编写可测试的类,该类将HTTP请求映射到Java对象。还有用于JSON的Jackson工具。
核心贡献者Nick Babcock说,Dropwizard的关键是开发期间和开发后的生产力。开发人员可以专注于业务逻辑,而不必为度量,配置和日志记录编写代码。Dropwizard的构建者计划在确定改进框架的位置时继续关注对Jetty和Jersey等项目的改进。

Grails:通过Groovy JVM语言锚定

现在由对象计算倡议(OCI)维护的 Grails是一个用于为JVM构建Web应用程序的框架。开发人员可以构建诸如内容管理系统和电子商务站点之类的应用程序,以及RESTful Web服务。Grails 基于Groovy JVM语言,可与Java技术一起使用,包括Java EE容器,Hibernate和Spring,并与Java Development Kit一起运行。
爱好者说,与使用其他框架构建应用程序相比,它所需的代码少得多,复杂度也更低。由Graeme Rocher共同创立的具有十年历史的框架的版本4.0将于2018年底推出,其功能包括对Groovy 2.5,Java 8基准和Java 9的支持。

GWT:Java输入,JavaScript输出

GWT被称为“ gwit”,也称为Google Web Toolkit,它使开发人员可以用Java编写客户端应用程序并将其部署为JavaScript。它已在Google产品(例如AdWords和电子钱包)中使用。
GWT支持浏览器应用程序的开发,而开发人员不必是JavaScript或XMLHttpRequest之类的技术专家。GWT SDK包括Java库,编译器和开发服务器。GWT编译器提供了跨代码库的优化,包括内联方法,无效代码删除和优化字符串。代码中的拆分点可以将下载分成多个JavaScript片段,并缩短启动时间。

JavaServer Faces:Web UI规范

已有14年历史的JavaServer Faces(JSF)具有Java规范,用于为Web应用程序构建基于组件的UI。它也是一个MVC Web框架,用于简化基于服务器的应用程序的UI的构造,并在页面中提供可重复使用的UI组件。JSF为UI开发提供了一种基于标准的方法,其应用程序可跨Java EE应用程序服务器移植。
当前版本的JSF 2使用Facelets作为其默认模板系统。也可以部署包括XUL(XML用户界面语言)和纯Java在内的View技术。
在JSF之上有诸如Apache MyFaces之类的实现。另外,Eclipse Foundation拥有其JSF Tools Project,该项目旨在简化JSF应用程序的开发。

JHipster:Angular或Spring Boot的选择

已有4年历史的JHipster在Spring Boot应用程序构建器的基础上工作,提供了现代的Web服务或微服务架构。它可以构建Spring Boot和Angular应用程序。JHipster由Okta赞助,该公司提供一项服务,可提供对工具的安全访问。
客户端技术包括Yeoman,Webpack,Angular和Bootstrap。服务器端技术包括Maven,Spring技术和Netflix OSS。
正在开发中的是JHipster 5,后端支持Spring Boot 2,前端支持React JavaScript UI框架。JHipster的域语言也将得到增强。

MyBatis:轻松进行关系数据库集成

MyBatis的主要卖点是简化JDBC的使用并减少编写与关系数据库进行交互的Java应用程序时所需的代码量。MyBatis与对象关系映射工具不同,它不将类映射到表而是将对象映射到SQL。使用MyBatis,不会对开发人员隐藏SQL。该框架在可与其一起使用的数据库和模式方面提供了灵活性。
MyBatis最初称为iBatis,它于2002年首次公开展示。

播放框架:反应式网络框架

Play使用轻量级的无状态架构,是适用于Java和Scala的高效,反应式Web框架。它提供了有关代码更改的热负载,开发人员可以在其中进行更改,刷新浏览器并立即查看更改,而无需重新编译或部署。
异步API使开发人员可以构建可使用最少资源进行扩展的Web应用程序。该框架基于用于分布式应用程序的Akka工具包构建,于2007年首次发布,并于2012年进行了重写。该计划要求将Play模块化,并针对微服务设计模块。使用热重载,多个Play服务将能够通过单个命令立即运行。也正在考虑更好地支持微服务模式,例如异步消息传递和事件源。

PrimeFaces:轻量级UI框架

拥有十年历史的PrimeFaces是Java EE和JavaServer Faces的UI框架,它是配置为单个.jar文件且没有依赖关系的轻量级库。该框架由电子商务提供商Prime Technology赞助,包含100多个组件,触摸优化的移动套件,客户端验证和主题套件。
PrimeFaces的开发人员正在使用JSF Renderer APis进行试验,以确定JSF应用程序是否可以在引入Java后端的情况下呈现渐进式Web应用程序(PWA)。他们还正在考虑让JSF组件呈现Web组件以利用现代Web API的优势。

Spark框架:用于快速开发的微框架

Spark框架(不要与Apache Spark大数据模式混淆)是一个声明性的Web框架,它使开发人员可以重新开始工作并快速运行。使用Java 8的语言功能,已有 7年历史的Spark Framework提供了表达性API。
Spark的开发人员计划对原始框架进行重大更新,将其标记为Version 3.0,并针对Kotlin语言发布Spark的正式版本。

Spring框架:早期支持依赖项注入

可能是最著名的Java框架,已有14年历史的Spring Framework长期以来一直将依赖项注入作为一项关键功能,甚至在Java Enterprise Edition(EE)具备此功能之前就提供了此功能。
该框架具有用于企业Java应用程序的编程和配置模型。它旨在照顾应用程序“管道”,以便开发团队可以专注于应用程序级业务逻辑。它还提供代码,事务管理,数据访问和Web应用程序的向后兼容性和可测试性。
Spring系列中的合作伙伴项目包括 Spring Boot,以帮助构建Spring应用程序。

Struts:Apache的MVC框架

Struts是用于构建Web应用程序的MVC框架。它使用插件架构,包括用于REST,AJAX和JSON的插件。Struts具有用于提供和维护基于Web的用户界面和服务的工具,可帮助开发人员桥接表示层和服务层,并协助类型转换和输入验证。Struts将请求-响应模型与HTML和AJAX UI组件结合在一起。
最初的Struts 1.0框架于2000年问世。在2006年将WebWork 2代码库与Struts合并之后,Struts 2出现了。Struts3的开发即将开始,Apache称其为该框架的彻底翻新。

Tapestry:面向组件的框架

Apache的Tapestry是一个面向组件的框架,用于在Java中构建可伸缩的Web应用程序。可以使用Java,Groovy或Scala进行编码。
在Tapestry中,页面和组件是POJO(普通的旧Java对象)。Apache表示,开发人员可以 通过访问Java语言功能和Java生态系统来获得Java 的速度和深度以及类似于Ruby或Python的敏捷开发。还提供POJO类,模板和异常报告。实时类重载功能使开发人员可以更改代码,刷新浏览器并查看更改,类似于Play框架。
Tapestry 1.0创建于2000年。当前版本Tapestry 5是没有版本4共享代码的重写。计划在即将发布的5.5版本中增加Java 9支持,性能改进和TypeScript编译。

Vaadin Flow:链接浏览器和服务器

Vaadin的Flow Java Web框架架起了Web和Java生态系统的桥梁,在浏览器和服务器之间进行双向通信,将Web UI链接到服务器端Java。从DOM提供对服务器的直接访问。应用程序在JVM上运行。
Vaadin Flow是Vaadin 10开发平台的一部分,于2017年10月在beta版本中引入Vaadin是一个整体框架,但该公司从Vaadin 10开始将框架拆分为Flow和Web组件集.Vaadin Flow的构建者希望使其更快并使构建渐进式Web应用程序更加容易。

Vert.x:JVM上的响应式应用程序

Eclipse Foundation的Vert.x工具箱是事件驱动和非阻塞的。这意味着应用程序可以使用少量内核线程来处理并发。Vert.x可以与Java,JavaScript,Groovy,Kotlin,Ruby,Ceylon和Scala一起使用。为支持的语言提供了惯用的API。
该框架不是限制性的。开发者说,开发人员可以得到“有用的积木”,并且可以按自己的意愿构建应用。Vert.x也可用于构建轻量级微服务。
Vert.x 1.0于2012年9月发布。版本3.5.1于2018年2月发布,均支持 JUnit 5 Java测试框架。

Wicket:抽象的面向请求的Web技术

Apache的Wicket是一个面向组件的Web框架,它抽象了面向请求的Web技术,并向开发人员提供UI概念,开发人员可以使用Java和HTML构建UI。使用Wicket,页面由相互协作以提供所需功能的组件组成。开发人员从页面,面板,按钮,链接,表单和列表视图的角度进行思考。组件还可以具有与它们关联的国际化,JavaScript和CSS文件。
已有14年历史的Wicket于2007年成为Apache项目。Wicket的下一步是Java 8习语的引入。开发人员将能够通过Wicket组件使用新的时间/日期API和lambda表达式。(Lambda表达式将减少样板代码。)
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
zhaozihao594 发布了22 篇原创文章 · 获赞 0 · 访问量 245 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐