【ArchSummit架构师峰会】基于大模型的基础框架、中台、应用层等专题全覆盖 >>> 了解详情
写点什么

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:5314534
用户头像

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

关注

评论

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

5月上海线下 · CSPO认证周末班【提前报名特惠】“价值交付课程”CST导师亲授

ShineScrum捷行

保证高效写入查询的情况下,如何实现 CPU 资源和磁盘 IO 的最低开销?

TDengine

大数据 tdengine 数据处理 时序数据库 资源消耗

开心档之C++ 指针

雪奈椰子

5月上海线下 · CSM认证周末班【提前报名特惠】“全球金牌课程”CST导师亲授

ShineScrum捷行

如何通过Java代码将添加页码到PDF文档?

在下毛毛雨

Java PDF 添加页码

数据库原理及MySQL应用 | 程序流程控制

TiAmo

数据库 sql

开心档之C++ 多态

雪奈椰子

前沿成果 | 澳鹏Appen团队两篇研究论文被国际顶会收录

澳鹏Appen

人工智能 机器学习 计算机视觉 nlp 数据标注

CNStack 服务网格:构建统一的服务治理和零信任安全能力

阿里巴巴云原生

阿里云 云原生 CNStack

分布式政企应用如何快速实现云原生的微服务架构改造

华为云开源

微服务 云原生

国营单位工作4年转行网络安全,成功上岸安全开发!

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

容器化,让数据库如虎添翼

沃趣科技

MySQL 数据库 云原生 容器化

重磅消息 | 2023年腾讯云从业者课程全面升级

科技热闻

再获权威认可!MIAOYUN入选中国信通院2022年度《云原生产品目录》

MIAOYUN

云计算 容器 云原生 容器云 容器云平台

CTO:半小时内处理好MyBatisPlus逻辑删除与唯一索引的兼容问题

了不起的程序猿

软件测试/测试开发丨Chrome 浏览器+Postman还能这样做接口测试 ?

测试人

软件测试 Postman 自动化测试 接口测试 测试开发

软件测试/测试开发丨如何高效使用 Requests 做接口自动化测试

测试人

软件测试 自动化测试 接口测试 测试开发 requests

网上说低代码的一大堆,JNPF凭什么可以火?

引迈信息

前端 敏捷开发 低代码 快速开发 JNPF

FastAPI 快速开发 Web API 项目: 定义路径参数和查询参数

宇宙之一粟

Python FastApi

哪里有免费大文件传输平台?通过这4个网站免费来进行大文件传输

镭速

龙蜥开发者说:历时三周,记录如何从 0 到 1 构建龙蜥衍生版 | 第 18 期

OpenAnolis小助手

开源 操作系统 龙蜥社区 浪潮信息 衍生版

Springfox与SpringDoc——swagger如何选择(SpringDoc入门)

天翼云开发者社区

基于SpringBoot实现单元测试的多种情境/方法(二)

天翼云开发者社区

智改数转:这个制造业的必答题该如何作答?

加入高科技仿生人

低代码 数字化 制造业 智能化 智改数转

从“卖船”到提供建造“航母” 的基础设施,用友BIP有底气

用友BIP

5月在线 · A-CSM认证周末班【提前报名特惠】“敏捷教练必修课程”CST导师亲授

ShineScrum捷行

打破软件开发“不可能三角” 只需一个低代码方案

力软低代码开发平台

【特别策划】2022年银行年报金融科技系列专题(一)

易观分析

金融科技 金融 银行

软件测试/测试开发丨玩游戏为什么会卡顿?

测试人

软件测试 游戏 自动化测试 卡顿 测试开发

大咖说丨云计算:数字世界的“中枢神经”

天翼云开发者社区

明道云技术路径选择及与LCDP的比较

明道云

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