AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Java 微框架:不可忽视的新趋势

  • 2015-06-16
  • 本文字数:1334 字

    阅读完需:约 4 分钟

任何语言都有优缺点。对 Java 而言,它安全、经过严格测试、向后兼容,但却牺牲了部分灵活性和简洁性。于是,有人就尝试寻找方法,以便能规避 Java 的臃肿,同时又利用 JVM 的强大功能。第一波努力围绕轻量级Java 框架展开,而现在,第二波努力已经出现,即Java 微框架。近日,软件分析公司Takipi探讨了这一新趋势。

随着语言的成熟,每次发布都会增加一些库。时间一久,对于大部分项目而言,包含在这些库中的许多功能都不是它们真正需要的。微框架就是要解决这个问题,其思想是:创建一个专用而又灵活的解决方案,满足生产过程的基本需求。

Java 微框架是轻量级 Java 框架的延续。它们可能是当今最轻量级的 Java 开发方式。虽然目前应用范围有限,但已经有在生产环境中成功部署的案例。Josh Dreyfuss 来自 Takipi 的产品营销部门, 他介绍了三种当前较为流行的 Java 微框架。

Ninja 是一个用于创建 Web Service 和应用程序的全栈 Java 微框架。它综合 Play 和 Ruby on Rails 的优点,并以纯 Java 格式提供。作为一个综合性软件栈,Ninja 提供了大量开箱即用的功能,如 JSON 解析、HTML 渲染,使得它简单易用。在扩展性方面,Ninja 采用了无状态设计,只需要增加服务器就可以实现横向扩展。不过,内置大量功能和简单易用的代价是,用户选择减少,工具本身占用空间较大。总之,Ninja 重新设计了 Java 框架,提供了简单、可扩展、易于使用的功能。感兴趣的读者可以查看 Ninja 的入门教程

Spark (注意不要同 Apache Spark 混淆)的设计初衷是,可以简单容易地创建 REST API 或 Web 应用程序。它是一个灵活、简洁的框架,大小只有 1MB。Spark 允许用户自己选择设计应用程序的模板引擎以及选择最适合他们项目的库,比如,HTML 解析功能就有 Freemarker、Mustaches、Velocity、Jade、Handlebars、Pebble 或 Water 等选项可供选择,而且很少需要配置或样板文件。不过,灵活简单的代价是,用户可选的功能减少。总之,Spark 剔除了许多 Java 的臃肿之物,提供了一个最小化的、灵活的 Web 框架。但由于精简程度较高,它缺少了一些功能,不适合用于大型 Web 应用程序的开发。感兴趣的读者可以查看 Spark 的入门教程

Jodd 是一个 Java 微框架、工具和公用程序的集合。所以,它同上面两个框架可能不具有直接可比性,比如,Spark 可以作为 Jodd 的一个组件。Jodd 的目标是减少许多 Java 工具和框架的空间占用,提高它们的速度,提供一个超级轻量级的框架和工具精选集合。Jodd 中的每个库都是单独提供的,用户可以选择使用。这样一个提供若干功能的框架集合似乎与微框架背道而驰,但实际上,Jodd 大小总共不过 1.5MB。总之,Jodd 是一个框架和工具的集合,用户可以对它们自由组合,形成自己的解决方案。但同时,这种灵活性也增加了使用的复杂度。感兴趣的读者可以查看 Jodd 的入门教程

下面是上述三种框架的流行度对比:

此外,Dreyfuss 还列出了其它一些框架,包括 JHipster Javalite Ratpack Vert.x 。感兴趣的读者可以进一步研究。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-16 21:5314898
用户头像

发布了 1008 篇内容, 共 423.0 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

如何领导规模化敏捷变革?

敏捷开发

敏捷开发 敏捷开发管理 safe 企业转型 规模化敏捷

为什么要用云手机养tiktok账号

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版

帮助某百年车企实施 ASPICE 的一点点感悟

QE_LAB

测试 汽车 质量保证 流程规范 ASPICE

IPA上传工具的原理和使用方法

物流平台如何与电商平台进行自动化流程管理

RestCloud

零代码 APPlink 自动化集成

Databend 开源周报第 130 期

Databend

AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案

阿里巴巴云原生

阿里云 云原生 Stable Diffusion Stable

DAPP持币生息项目系统开发|步骤逻辑|源码搭建

l8l259l3365

文心一言 VS 讯飞星火 VS chatgpt (189)-- 算法导论14.1 6题

福大大架构师每日一题

福大大架构师每日一题

Wasm on Go

fliter

智能商品计划系统在哪些方面可以帮助服装企业提高盈利能力?

第七在线

深入理解 C# 编程:枚举、文件处理、异常处理和数字相加

小万哥

C# 程序人生 编程语言 软件工程 后端开发

Nacos 官网重大升级,提供官方发行版下载包,3.0 里程碑版本新特性预告

阿里巴巴云原生

阿里云 微服务 云原生 nacos

使用 AI 构建面向未来的 DevOps

亚马逊云科技 (Amazon Web Services)

人工智能 机器学习

释放未来:2024 年区块链应用程序开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 公链开发

提升企业级数据处理效率!3.0 系列版本的四个集群优化点详解

TDengine

tdengine 时序数据库

《代码大全(第2版)》PDF

程序员李木子

《实战Java高并发程序设计(第2版)》PDF

程序员李木子

软件测试岗位发展编年史

老张

职业规划 软件测试 质量保障

5天!软件开发考试该如何准备?

统信软件

MSE Nacos 配置变更审计平台使用指南

阿里巴巴云原生

阿里云 微服务 云原生 nacos

软件测试学习笔记丨Charles_Mock实战

测试人

软件测试

Jetpack Compose -> MutableState 和 mutableStateOf()

老A说

JetPack an'droid android jetpack

那个因AI而自杀的人类,他在恐惧什么?

脑极体

AI

人工智能与低代码开发: 创新技术的未来

不在线第一只蜗牛

人工智能 低代码

用户故事地图实际应用

敏捷开发

产品设计 软件开发 用户体验 交互设计 产品管理

Java微框架:不可忽视的新趋势_Java_谢丽_InfoQ精选文章