Beetl 2.0 发布,Java 模板引擎 - 开源中国社区
Beetl 2.0 发布,Java 模板引擎
oschina 2014年05月04日

Beetl 2.0 发布,Java 模板引擎

oschina oschina 发布于2014年05月04日 收藏 57 评论 25

有免费的MySQL,为什么还要买? >>>  

Beetl目前版本是2.0,大小650K,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,开发和维护模板有很好的体验。是新一代的模板引擎。总得来说,它的特性如下:

  • 功能完备:同主流的java模板引擎相比,Beetl具有绝大多数功能。适用于各种应用场景,从对响应速度有很高要求的大网站到功能繁多的CMS管理系统都适合。Beetl本身还具有很多独特功能来完成模板编写和维护,这是其他模板引擎所不具有的。

  • 非常简单:类似Javascript语法和习俗,只要半小时就能通过半学半猜完全掌握用法。拒绝其他模板引擎那种非人性化的语法和习俗。

  • 超高的性能:Beetl 远超过主流java模板引擎性能,而且消耗较低的CPU

  • 易于整合:Beetl能很容易的与各种web框架整合,如Spring MVC,JFinal,Struts,Nutz,Jodd,Servlet等。

  • 支持模板单独开发和测试,即在MVC架构中,即使没有M和C部分,也能开发和测试模板。

  • 扩展和个性化:Beetl支持自定义方法,格式化函数,虚拟属性,标签,和HTML标签. 同时Beetl也支持自定义占位符和控制语句起始符号也支持使用者完全可以打造适合自己的工具包

关于性能

通过与主流模板引擎Freemaker,Vecloity以及JSP对比,Beetl均远高于前面三个,这是因为宏观上,通过了优化的渲染引 擎,IO的二进制输出,字节码属性访问增强,微观上,通过一维数组保存上下文,合并静态文本,通过重复使用字节数组来防止java频繁的创建和销毁数组, 还使用模板缓存,运行时优化等方法。



仅仅测试了按照字符输出以保证引擎测试公平性,如果开启字节输出支持,将快于DirectOut

独特功能

Beetl有些功能是发展了10多年的模板引擎所不具备的,这些功能非常利于模板的开发和维护,如下

  • 自定义占位符和控制语句起始符号,这有利于减小模板语法对模板的倾入性,比如在html模板中,如果定义控制语句符号是<!--:和 -->,那么,大部分模板文件都能同过浏览器打开。有的使用者仅仅采用了单个符号@ 以及回车换号作为控制语句起始符号,这又能提高开发效率

  • 可单独测试的模板。无需真正的控制层和模型层,Beetl的模板就可以单独开发和测试

  • 同时支持较为松散的MVC和严格的MVC,如果在模板语言里嵌入计算表达式,复杂条件表达式,以及函数调用有干涉业务逻辑嫌疑,你可以禁止使用这些语法。

  • 强大的安全输出,通过安全输出符号!,能在模板变量,变量属性引用,for循环,占位符输出,try-catch中等各个地方提供安全输出,保证渲染正常

  • 模板变量:运行将模板的某一部分输出像js那样赋值个一个变量,稍后再处理。利用模板变量能完成非常复杂的页面布局(简单的布局可使用layout标签函数)

  • 类型推测,能在运行的时候推测模板变量类型,从而优化性能,也可以通过注解的方法显示的说明模板变量属性(这是非必须的,但有助于IDE自动提示功能)

  • 可插拔的设计,错误信息提示,模板引擎缓存机制,模板资源管理,本地调用的安全管理器,严格MVC限制,模板引擎本身都有默认的实现,但又完全可以自定义以适合特定需求

  • 增强的语法,如for-elsefor, select-case,安全输出符号! 等,这些语法特别适合模板开发

  • 性能超高,具有最快的模板解释引擎,同时,又有较低的CPU消耗。适合各类模板引用,如CMS系统,超高访问量的门户系统

Beetl在线体验和代码分享http://ibeetl.com:8080/beetlonline/

源码下载http://sourceforge.net/projects/beetl/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Beetl 2.0 发布,Java 模板引擎
分享
评论(25)
最新评论
0

每当要推自己的东西的时候,都说之前的性能不好了,使用不方便了,太过复杂化之类的!

0

顶一个 ^_^

0

市面上的模板引擎确实太多,Beetl 应该是很不错的选型。
Smart 框架正好缺这一块,后续会考虑做一个整合。

0

引用来自“Mr.CT”的评论

有这么叼吗?真这么叼,哥不防试一下。

从构思到开发,到版本升级,也有4年了,叼也是慢慢叼起来的 :)
0

引用来自“fanl1982”的评论

我想了解下,这种模板引擎能否用来开发公司内部的代码生成框架

如果其他模板引擎都可以,这当然也可以了。
0

引用来自“Mr.CT”的评论

为什么要用<%%>呢。不要这玩意就很好了。

可以自定义站位符,最简单情况,用@和回车,如:
@for(user in userList){
<tr>${user.name}</tr>
@}
0

引用来自“Run_佳”的评论

有没有直接读取.txt 等文件的功能,不过有 class方法调用

有,使用FileResourceLoader
0

我想了解下,这种模板引擎能否用来开发公司内部的代码生成框架

0

为什么要用<%%>呢。不要这玩意就很好了。

0

有没有直接读取.txt 等文件的功能,不过有 class方法调用

0

有这么叼吗?真这么叼,哥不防试一下。

0

引用来自“littlebin”的评论

有哪些新特性啊?与1.x兼容不?还是preview版,正式版好久出呢?

正式版大约一个月左右吧,现在版本还没有收到任何bug反馈,可以放心用
0

引用来自“紫电清霜”的评论

楼主辛苦了,赞一个 :)
大小是650K,怎么突然变大这么多了啊?

主要是antlr4.2 变大了,还有内部重构了,多出了很多类
0

引用来自“悠悠然然”的评论

刚才去粗粗瞄了一眼,唉......

咋?
0

看起来不错,有空看看是否能实际运用于项目中。

0

有哪些新特性啊?与1.x兼容不?还是preview版,正式版好久出呢?

0

刚才去粗粗瞄了一眼,唉......

0

有时间仔细研究一下。

0

支持nutz了,哈哈

0

性能我想应该不是啥大问题,大不了可以开启编译模式。

顶部