七大JAVA Web框架的优缺点对比

原创
2020/06/26 09:54
阅读数 450

一 、Spring MVC - Java Web 框架
自离首次发布 10 多年以来,Spring MVC 框架仍然领先于竞争对手。随着时间的推移,它扩展成一个完整的 MVC 框架,并不断演变成一个全面的 Java 框架。作为集成特殊应用科学的分层 J2EE / Java 框架,该框架为软件工程师提供了用于 Web 应用程序配置,应用程序开发和安全项目的完整工具包。该框架以其发达的生态系统而闻名,它提供了许多附加选项,从 SOAP Web 服务,REST API 到安全加密和授权。
优点:
增强模块化的轻量级容器
可以跨各种平台进行部署
灵活的依赖注入使用
包括 XML,Java 和注释配置的三路配置
通过 POJO's缓解了注射测试的数据
缺点:
学习曲线比较陡峭
新手实施比较困难
需要花费时间部署

二、JSF - Java Web 框架
Oracle 认为 JSF 是一个实用网络 Java 框架,旨在简化基于 Web 的 UI 的集成开发。虽然这个框架在 Java 开发方面不是很好,但是 Oracle 提供的文档很容易使用。这是一种标准化的技术,拥有丰富的工具和库,可以为你在高度复杂的应用程序中铺平道路。JSF 规范允许启用标准用户界面组件的重用和扩展。它减少了创建和维护 Java 应用程序在上运行和在目标客户端上呈现 UI 应用程序的痛苦。不仅如此,它还提供简单的数据传输和可重用的 UI 组件。
优点
由于它可以创建可重复使用的组件,因此效率更高且一致
支持像 EJB 这样的 JSF 实现的优秀供应商(IBM,Oracle,JBoss 等)
准备使用像 Apache,Infragistics,Richfaces 等组件
方便开发人员,特别是那些使用 IDE 软件的人
缺点
陡峭的学习曲线
没有考虑书签工具
不可扩展
原始 Ajax 支持
缺乏灵活性

三、Google Web Toolkit - Java Web 框架
Google Web Toolkit(GWT)是一个开源开发工具集,使开发人员能够构建和优化复杂的 JS 前端应用程序。它的主要目标是提供高性能 Web 应用程序的开发,即使开发人员不熟悉 JavaScript,XMLHttpRequest 或浏览器等偏冷门的知识。为了让其可信度高,谷歌自己的许多产品,包括 AdSense,Hotel Finder,Wallet,AdWords 等都使用 GWT。
优点:
更容易学习
内置 IDE 支持重构 Java 代码
可以在客户端大量构建响应式 Web 应用程序,并减少服务器端的琐事
可以迭代地平滑地从典型的 Web 应用程序迁移到 GWT 应用程序
即使在使用 AJAX 的情况下,也具有内置的浏览器后退按钮支持
缺点:
仅对 Java 开发人员有利,对 PHP 或 .NET 的开发人员没有太大帮助
由于快速发展的 GWT,有许多版本很难获得所有功能和接口
编译速度慢,需要使用专有方法来定义结构

四、Grails - Java Web 框架
Grails 是一个开源的 Java Web 框架,旨在将开发人员的生产力与默认值和 Convention-over-Configuration API 相提并论。它与 Java(JVM)相集成,同时提供强大的功能,包括编译时元编程,异步编程和领域特定语言。Grails 采用强大的视图技术,集成的 NoSQL / ORM 支持,插件和 Spring 支持的依赖注入进行更新。让你可以轻松集成并互操作 Java,Java EE 和 JVM 容器。
优点:
Grails 提供了一个快速的开发周期
非常适合小型和中型项目
各种插件可供选择
简单而令人易懂的文档
可以在不重启服务器的情况下更改配置
缺点:
使用运行时语言可能会很困难
开发多线程应用程序,GORM 可能会出现问题
复杂的集成过程
延迟运行时间

五、Struts 2 - Java Web 框架
Apache 的 Struts 是一个用于开发现代 Java Web 应用程序的开源免费 MVC 框架。它包含一组类和接口,共同协作开发 Web 应用程序。它适用于许多 Java 应用程序的网络框架,并且受到了很多社区的支持。为了进一步扩展 Struts Java 框架,Struts 2 作为后继者有了很大的改变。这个框架最适合于开发当代 Java EE web 应用程序的工程师,Apache 软件基金会借助 Struts 2 为开发人员提供了一个用于开发面向网络的,企业级应用程序,并优化整个开发流程的工具。
优点:
没有线程安全问题
依赖注入使得测试更简单
它可以使用“对象图导航语言”(OGNL)
Struts 2 框架的 Servlet 上下文以简单的地图形式表示
它支持通过验证方法进行手动验证,并且还包含子框架验证
缺点:
由于它与 Struts 1 完全不同,难以迁移
Struts 2 文档非常有限
由于文档管理不善,新用户很难发现它的优点;
近几年爆出致命漏洞,导致大量用户选择其它框架。

六、nutz Java Web框架
Nutz是对于Java程序员来说,除SSH之外的另一个选择。当然,它是开源的,并且是完全免费的。同时也是商业友好的

优点
轻 -- 当前最新版,整个jar文件共910kB -- 针对JDBC的薄封装,无缓存。
全 -- 提供了Dao(ORM, SQL管理),Ioc, Aop, Mvc, Json解析等必要功能。
活 -- 各个部分可以独立使用,比如在Spring里采用Nutz.Dao,又比如在Nutz.Ioc里使用Hibernate等。
整 -- 它所有功能均不依赖第三方jar文件。这就意味着:如果一个Web应用,你在WEB-INF/lib下只需要放置一个nutz.jar就够了。当然,你要使用其它的连接池、数据库驱动、打印PDF支持等功能,还需要自行添置jar包
缺点
目前只有中文文档

七、jfinal - Java Web框架
JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。

优点
JFinal架构十分简单,顶层是一个责任链模式变种,ActionHandler 内部结构也十分简单,是一个Command模式变种。
遵循COC原则,零配置,无xml
ActiveRecord支持,使数据库开发极致快速
自动加载修改后的java文件,开发过程中无需重启web server
AOP支持,拦截器配置灵活,功能强大
Plugin体系结构,扩展性强
多视图支持,支持FreeMarker、JSP、Velocity
强大的Validator后端校验功能
功能齐全,拥有struts2的绝大部分功能
缺点
没有英文文档

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部