百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

ccwgpt 2024-10-15 08:55 21 浏览 0 评论

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的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。


相关推荐

RACI矩阵:项目管理中的角色与责任分配利器

作者:赵小燕RACI矩阵RACI矩阵是项目管理中的一种重要工具,旨在明确团队在各个任务中的角色和职责。通过将每个角色划分为负责人、最终责任人、咨询人和知情人四种类型,RACI矩阵确保每个人都清楚自己...

在弱矩阵组织中,如何做好项目管理工作?「慕哲制图」

慕哲出品必属精品系列在弱矩阵组织中,如何做好项目管理工作?【慕哲制图】-------------------------------慕哲制图系列0:一图掌握项目、项目集、项目组合、P2、商业分析和NP...

Scrum模式:每日站会(Daily Scrum)

定义每日站会(DailyScrum)是一个Scrum团队在进行Sprint期间的日常会议。这个会议的主要目的是为了应对Sprint计划中的不断变化,确保团队能够有效应对挑战并达成Sprint目标。为...

大家都在谈论的敏捷开发&Scrum,到底是什么?

敏捷开发作为一种开发模式,近年来深受研发团队欢迎,与瀑布式开发相比,敏捷开发更轻量,灵活性更高,在当下多变环境下,越来越多团队选择敏捷开发。什么是敏捷?敏捷是一种在不确定和变化的环境中,通过创造和响应...

敏捷与Scrum是什么?(scrum敏捷开发是什么)

敏捷是一种思维模式和哲学,它描述了敏捷宣言中的一系列原则。另一方面,Scrum是一个框架,规定了实现这种思维方式的角色,事件,工件和规则/指南。换句话说,敏捷是思维方式,Scrum是规定实施敏捷哲学的...

敏捷项目管理与敏捷:Scrum流程图一览

敏捷开发中的Scrum流程通常可以用一个简单的流程图来表示,以便更清晰地展示Scrum框架的各个阶段和活动。以下是一个常见的Scrum流程图示例:这个流程图涵盖了Scrum框架的主要阶段和活动,其中包...

一张图掌握项目生命周期模型及Scrum框架

Mockito 的最佳实践(mock方法)

记得以前面试的时候,面试官问我,平常开发过程中自己会不会测试?我回答当然会呀,自己写的代码怎么不测呢。现在想想我好像误会他的意思了,他应该是想问我关于单元测试,集成测试以及背后相关的知识,然而当时说到...

EffectiveJava-5-枚举和注解(java枚举的作用与好处)

用enum代替int常量1.int枚举:引入枚举前,一般是声明一组具名的int常量,每个常量代表一个类型成员,这种方法叫做int枚举模式。int枚举模式是类型不安全的,例如下面两组常量:性别和动物种...

Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!

Maven简介Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”。Maven是一个跨平台的项目管理工具。主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。仔...

Java单元测试框架PowerMock学习(java单元测试是什么意思)

前言高德的技术大佬在谈论方法论时说到:“复杂的问题要简单化,简单的问题要深入化。”这句话让我感触颇深,这何尝不是一套编写代码的方法——把一个复杂逻辑拆分为许多简单逻辑,然后把每一个简单逻辑进行深入实现...

Spring框架基础知识-第六节内容(Spring高级话题)

Spring高级话题SpringAware基本概念Spring的依赖注入的最大亮点是你所有的Bean对Spring容器的存在是没有意识的。但是在实际的项目中,你的Bean必须要意识到Spring容器...

Java单元测试浅析(JUnit+Mockito)

作者:京东物流秦彪1.什么是单元测试(1)单元测试环节:测试过程按照阶段划分分为:单元测试、集成测试、系统测试、验收测试等。相关含义如下:1)单元测试:针对计算机程序模块进行输出正确性检验工作...

揭秘Java代码背后的质检双侠:JUnit与Mockito!

你有没有发现,现在我们用的手机App、逛的网站,甚至各种智能设备,功能越来越复杂,但用起来却越来越顺畅,很少遇到那种崩溃、卡顿的闹心事儿?这背后可不是程序员一拍脑袋写完代码就完事儿了!他们需要一套严谨...

单元测试框架哪家强?Junit来帮忙!

大家好,在前面的文章中,给大家介绍了以注解和XML的方式分别实现IOC和依赖注入。并且我们定义了一个测试类,通过测试类来获取到了容器中的Bean,具体的测试类定义如下:@Testpublicvoid...

取消回复欢迎 发表评论: