湖南正致教育:15个Java框架,为开发者提供了一个宝贵的提升机会

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

开发人员有很多Java框架选择。这里有15个按字母顺序构建Java平台应用程序的主要选择。

Blade:轻量级MVC框架

这个MVC框架基于Java 8和Netty Web服务器。描述为轻量级且简单,Blade提供REST风格的路由接口,并且没有入侵拦截器,文档状态。刀片的源代码小于500KB。

要使用Blade构建应用程序,开发人员可以创建一个通用的Maven项目。包括模板引擎支持和流式API风格。

Blade的开发始于2015年,目标是提供一个完整的Web框架。计划要求增加对Java 9特有的模块化的支持, 并支持更多的Web生态系统组件。

Dropwizard:"ops友好"的网络服务

Dropwizard于2011年首次发布,它是一个架构"适合操作系统的"REST风格的Web服务。使用Dropwizard,您可以使用Jetty HTTP库将HTTP服务器嵌入到项目中。Jersey JAX-RS实现支持编写将HTTP请求映射到Java对象的可测试类。JSON还有杰克逊工具。

核心贡献者Nick Babcock说,Dropwizard的关键是开发过程中和开发后的生产力。开发人员可以专注于业务逻辑,而不是为度量,配置和日志编写代码。Dropwizard的建设者计划在确定如何改进框架时,继续关注诸如Jetty和Jersey等项目的改进。

Grails:由Groovy JVM语言支持

现在由Object Computing Initiative(OCI)维护 , Grails是一个为JVM构建Web应用程序的框架。开发人员可以构建应用程序,如内容管理系统和电子商务网站,以及RESTful Web服务。基于Groovy JVM语言,Grails使用包括Java EE容器,Hibernate和Spring在内的Java技术,并且使用Java Development Kit进行操作。

粉丝们表示,与使用其他框架构建应用程序所需的代码相比,它需要的代码少得多,复杂性也较低。由Graeme Rocher创立的这个已有十年历史的框架4.0版将于2018年底发布,其功能包括支持Groovy 2.5,Java 8基线和Java 9。

GWT:Java in,Java out

"gwit"也称为Google Web Toolkit,GWT允许开发人员使用Java编写客户端应用程序并将其部署为Java。它已用于Google产品,例如AdWords和电子钱包。

GWT支持浏览器应用程序的开发,而无需开发人员成为诸如Java或等技术的专家。GWT SDK包括Java库,编译器和开发服务器。GWT编译器提供了整个代码库的优化,内联方法,死代码删除和优化字符串。代码中的分割点可以将下载分割成多个Java片段并改善启动时间。

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在内的视图技术也可以部署。

在JSF之上有一些实现,比如Apache MyFaces。此外,Eclipse Foundation还有其JSF工具项目,旨在简化JSF应用程序的开发。

JHipster:选择Angular或Spring Boot

在Spring Boot应用程序构建器之上工作,这位四岁的JHipster提供了一种现代化的Web服务或微服务架构。它可以构建Spring Boot和Angular应用程序。JHipster由Okta赞助,它提供的服务可以提供对工具的安全访问。

客户端技术包括Yeoman,Webpack,Angular和Bootstrap。服务器端技术包括Maven,Spring技术和Netflix OSS。

开发中有JHipster 5,后端支持Spring Boot 2,并支持前端的React Java UI框架。JHipster的领域语言也将得到增强。

MyBatis:更简单的关系数据库集成

MyBatis的主要卖点是简化JDBC的使用并减少编写与关系数据库交互的Java应用程序时所需的代码量。MyBatis通过不将类映射到表而将对象映射到SQL来区别于对象关系映射工具。使用MyBatis,SQL不会被开发人员隐藏。该框架为数据库和架构提供了灵活性,可以使用它。

MyBatis最初被称为iBatis,它于2002年首次公开展示。

Play Framework:反应式网页框架

Play采用轻量级无状态架构,是一款适用于Java和Scala的高生产力,反应式Web框架。它提供了代码更改的热负载,开发人员进行更改,刷新浏览器并立即查看更改,而无需重新编译或部署。

异步API让开发人员可以构建可以使用最少资源进行扩展的Web应用程序。构建于分布式应用程序的Akka工具包上,该框架于2007年首次发布,并于2012年进行了重新编写。计划要求使用更为模块化的Play,并提供用于微服务的模块。多重播放服务将能够通过单个命令一次运行,使用热重新加载。对微服务模式如异步消息传递和事件采购的更好支持也在考虑之中。

PrimeFaces:轻量级UI框架

一个用于Java EE和JavaServer Faces的UI框架,十年前的PrimeFaces可以作为一个轻量级库,配置为一个没有依赖关系的.jar文件。该框架由电子商务提供商Prime Technology赞助,拥有超过100个组件,触摸优化的移动套件,客户端验证以及主题套件。

PrimeFaces的开发人员正在尝试使用JSF Renderer APis来确定JSF应用程序是否可以渲染具有Java后端的渐进式Web应用程序(PWA)。他们还在研究让JSF组件渲染Web组件以利用现代Web API。

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

Spark框架(不要与Apache Spark大数据图表混淆)是一个声明性的Web框架,让开发人员能够快速完成工作并最终运行。使用Java 8的语言功能,七年前的Spark Framework提供了一个富有表现力的API。

Spark的开发人员计划对原始框架进行重大更新,标记为3.0版,并为Kotlin语言开发 Spark的正式版本。

Spring Framework:早期支持依赖注入

也许是最着名的Java框架,具有14年历史的Spring框架长久以来都将依赖注入作为关键功能,甚至在Java企业版(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年推出; Struts 2是在2006年将WebWork 2代码库与Struts合并之后出现的。开发即将开始于Struts 3,Apache将对框架进行彻底的改造。

Tapestry:面向组件的框架

Apache的Tapestry是一个面向组件的框架,用于在Java中构建可伸缩的Web应用程序。编码可以用Java,Groovy或Scala完成。

在Tapestry中,页面和组件是POJO(普通的旧Java对象)。Apache表示,开发人员 通过访问Java语言特性和Java生态系统,可以获得类似于Ruby或Python的Java和敏捷开发的速度和深度。还提供POJO类,模板和例外报告。实时的类重新加载功能可让开发人员更改代码,刷新浏览器并查看更改,类似于Play Framework。

Tapestry 1.0是在2000年创建的。当前版本Tapestry 5是一个重写版本,没有第4版的共享代码。即将发布的5.5版本的计划调用了添加Java 9支持,性能改进和Type编译。

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

Vaadin的Flow Java Web框架将网络和Java生态系统桥接在一起,它在浏览器和服务器之间建立双向通信,将Web UI与服务器端Java相连接。直接访问从DOM提供给服务器。应用程序在JVM上运行。

作为Vaadin 10开发平台的一部分,Vaadin Flow于2017年10月推出beta版。Vaadin一直是一个单一框架,但该公司将该框架分为Flow和Vaadin 10的Web组件. Vaadin Flow的构建者希望使其更快,使构建渐进式网络应用程序更容易。

Vert.x:JVM上的反应性应用程序

Eclipse Foundation的Vert.x工具包是事件驱动的,并且是非阻塞的。这意味着应用程序可以使用少量的内核线程处理并发。Vert.x可以与Java,Java,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,一个页面由多个组件一起工作来提供所需的功能。开发人员根据页面,面板,按钮,链接,表单和列表视图进行思考。组件还可以具有国际化,Java和与其关联的CSS文件。

这个14岁的Wicket在2007年成为Apache项目。接下来Wicket的案例是Java 8成语的引入。开发人员将能够使用Wicket组件使用新的时间/日期API和lambda表达式。(Lambda表达式将减少样板代码。)

后记:对于大部分学习的人来说,找机会把自己的基础知识补齐,边工作边补基础知识,真心很重要。

猜你喜欢

转载自blog.csdn.net/qq_32743259/article/details/80242613