东西好不好,先比一下功能,拿目前最流行的Freemarker来做比较
完全参考了
Freemarker
官方文档(
2.3.19
)
第一列是freemarker官方文档目录,第二列是表示
beetl
中是否具有同样的功能
通过下列表格,可以看出绝大部分功能,
beetl
都是支持的
功能
|
是否支持
|
备注
|
1.1
简介
|
支持
|
|
1.2
模板
+
数据模型
=
输出
|
支持
|
|
1.3
数据模型一览
|
支持
|
|
1.4.1
简介
|
支持
|
|
1.4.2 (.1--.4)
指令示例
|
支持
|
Beetl
中,采用includeFileTemplate
标签来include
一个文件。Beetl
中还支持switch/case
|
1.4.2.5
处理不存在的变量
|
支持
|
不支持询问变量是否存在,
但可以通过扩展函数来支持
|
2.1
基本内容
|
支持
|
|
2.2.1
类型
简介
|
大部分支持
|
很少使用的节点类型
不支持
|
2.2.2
标量
|
支持
|
|
2.2.3
容器
|
支持
|
|
2.2.4
方法和函数
|
支持
|
可以通过扩展函数来间接支持
|
2.2.5
其它(节点类型)
|
不支持
|
|
3.1
总体结构
|
支持
|
|
3.2
指令
|
支持
|
|
3.3
表达式
|
支持
|
集合操作不支持,但可以通过扩展函数来实现集合操作。
截取字符串也不是内置的,但可以通过扩展函数来实现,如str.subString
|
3.3.3.1
字符串
|
支持
|
|
3.3.3.2
数字
|
支持
|
|
3.3.3.3
布尔值
|
支持
|
|
3.3.3.4
序列
|
支持
|
采用js
语法的json
格式支持。但不包括支持
start
..end
这样的方式
|
3.3.3.5
哈希表
|
支持
|
|
3.3.4
检索变量
|
支持
|
|
3.3.5
字符串操作
|
不支持
|
此语法很奇怪,只能说freemaker
复杂了语法
|
3.3.5.2
获取一个字符
|
支持
|
通过扩展函数支持
|
3.3.6.1
序列操作
连接
|
支持
|
通过扩展函数支持
|
3.3.6.2
序列切分
|
支持
|
通过扩展函数支持
|
3.3.7
哈希表操作
连接
|
支持
|
|
3.3.8
算数运算
|
支持
|
|
3.3.9
比较运算
|
支持
|
|
3.3.10
逻辑操作
|
支持
|
|
3.3.11
内建函数
|
支持
|
|
3.3.13
处理不存在的值
|
支持
|
通过扩展函数支持
|
3.3.13.1
默认值
|
部分支持
|
|
3.3.13.2
检测不存在的值
|
支持
|
|
3.3.14
括号
|
支持
|
|
3.3.15
表达式中的空格
|
支持
|
|
3.3.16
操作符的优先级
|
支持
|
无
数字范围
这个概念
|
3.4
插值
|
支持
|
|
4.1
自定义指令
(宏)
|
支持
|
间接通过标签等支持
|
4.1.4
嵌套内容
|
支持
|
Beetl
中主要用在layout
标签里
|
4.1.5
宏和循环变量
|
支持
|
|
4.2
在模板中定义变量
|
支持
|
|
4.3
命名空间
|
部分支持
|
通过扩展函数支持,
|
4.4
空白处理
|
支持
|
Beetl
中不需要此额外功能
|
4.5
替换(方括号)语法
|
支持
|
|
东西好不好,再比一下性能,那被公认为性能良好的Freemarker做比较
性能比较
单线程:
还是以常用模板为准(大小6K
),循环渲染50000
次,需要时间(毫秒为单位)如下
Beetl1.2M1
解释执行方式(普通模式),运行三次,分别 1356,1365,1348
Beetl1.2M1
编译执行方式(普通模式),运行三次,分别 913,922,905
Freemarker
分别是 1155,1130,1122
Beetl1.2M1
允许字节流优化,解释方式执行三次,分别是 587,605,610
Beetl1.2M1
允许字节流优化,编译方式执行三次,分别是 385,355,370
简而言之,对beetl
做运行时编译,byte
输出设定后,渲染5
万次6K
的模板,性能如下
Freemarker
|
Beetl
|
1140
毫秒
|
370
毫秒
|
及时不对beetl
做任何优化,性能也与Freemarker
持平
最后,向给位有志从事开源开发的朋友号召,无论你是工作10+年的老手,还是在学习就读的学生,如果愿意从事beetl开发和维护,我非常欢迎。我用了很多业余的精力去一个人搞一个开源的方方面面的工作,感到非常费神。我希望找一个能力突出,愿意去维护beetl开源的人。有想法可以留言。
分享到:
相关推荐
Beetl是一款6倍于Freemarker的超高性能的java模板引擎,来自于中国!!BeetlSQL是一款功能强大,以SQL为中心,使用简单的全功能的ORMapping工具,支持自动生成代码
beetl具有目前流行的模板引擎所支持的功能,如具有 freemarker 所提供的绝大部分功能。并且,并有有些独特功能是这些有10年以上历史模板引擎所不具备的。
4、易于整合:Beetl 能很容易的与各种 web 框架整合,如 Spring MVC,JFinal,Struts,Nutz,Jodd,Servlet 等。 5、支持模板单独开发和测试,即在 MVC 架构中,即使没有 M 和 C 部分,也能开发和测试模板。 6、扩展...
关于性能:通过与主流模板引擎Freemarker,Velocity以及JSP对比,Beetl均远高于前面三个,这是因为宏观上,通过了优化的渲染引擎,IO的二进制输出,字节码属性访问增强,微观上,通过一维数组保存上下文,合并静态...
JPA(Hibernate数据库CRUD),Mybatis(数据库CRUD),Mybatis(Mybatis数据库CRUD),thymeleaf(模板解析),beetl(模板解析),freemarker (模板解析),enjoy(模板解析),并包含一些整合多个功能模块的090-...
支持多种模板引擎:已内置Freemarker、Groovy、Beetl、Thymeleaf等常用模板引擎Excel构建器(详情参见文档Getting started),推荐使用Beetl模板引擎(Beetl文档); 提供默认Excel构建器,直接输出简单Excel:无需...
支持多种模板引擎:已内置Freemarker、Groovy、Beetl、Thymeleaf等常用模板引擎Excel构建器(详情参见文档Getting started),推荐使用Beetl模板引擎(Beetl文档); 提供默认Excel构建器,直接输出简单Excel:无需...
2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...