Wit 2.5.0-beta 发布,不再支持 Java 7

栏目: Java · 发布时间: 8年前

内容简介:Wit 2.5.0-beta 发布,不再支持 Java 7

Febit Wit 是一个 Java 平台下的模板引擎,语法类似 JavaScript,支持自定义函数,全局变量,Lambda 表达式,核心模块轻巧,无第三方依赖,采用BSD开源协议。

2.5.0-beta 更新内容如下:

  • 最重要的: 现在至少需要 Java 8 以上, 不再支持 Java 7 及以下版本

  • 修正: 仅当表达式元素不可变(immutable)时才执行优化

  • 废弃: KeyValuesUtil 不再推荐使用, 会尽快被移除, 请使用 Vars.of(..) 代替

  • 变更: 请使用 getters 访问 Template 的属性, 不再提供相关的字段的直接访问

  • 删除: 删除已废弃的 KeyValues, 已由 Vars 代替

  • 删除: 删除已废弃的 CFG

  • 删除: 不再支持重定向表达式, 因其在优先级上不符合预期, 但重定向句柄依旧保留

  • 删除: 移除不再需要的 api: GlobalManager#commit(), Engine#init(), 如有调用直接删除即可

  • 删除: 移除 RegistModeResolver, 可以通过覆盖 Resolver#register(..) 实现同等效果

  • 新增: 新增 GlobalManager#setConstMethod(...), 方便使用 lambda 和函数引用直接添加常量函数

  • 新增: 新增 codeFirst 的 codeStringLoader, 向准脚本引擎迈进

  • 新增: 支持更多 Number 类型的基本运算

  • 其他: 一(大)些(量)细节调整及删减

值得一(卖)提(弄)的是, 这个版本只有 306.3kB, 比较遗憾的是最终没能缩减到 300kB 以下, 说出来你们可能不信, 我真的是有强迫症, 只不过代码强迫症可能更严重一些, 一些该有的东西还是必须要有的, 否做把只是为了优化性能的 asm 相关模块删掉妥妥的能再减少 20kB 以上.

接下来, 着重介绍一下 codeStringLoader:

codeStringLoader 实际上只是在配置层面将 StringLoader 的 codeFirst 设置为 true, 这一特性很早就已经支持了, 只是这次将其配置到了默认配置中, 示例:

之前我们得到一个字符串模板需要:

Template t = engine.getTemplate("string:<% echo \"Hello Wit!\"; %>");

但是现在, 也可以更简单些:

Template t = engine.getTemplate("code: echo \"Hello Wit!\" ");

这对于把 wit 当做脚本用途的场景,会相当方便, 例如:

支持脚本的 Hive 自定义函数

这里就是用到了这种方式


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

Tagging

Tagging

Gene Smith / New Riders / 2007-12-27 / GBP 28.99

Tagging is fast becoming one of the primary ways people organize and manage digital information. Tagging complements traditional organizational tools like folders and search on users desktops as well ......一起来看看 《Tagging》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器