Beetl 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Beetl 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Beetl 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 BSD
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发模板引擎
开源组织
地区 国产
投 递 者 闲大赋
适用人群 未知
收录时间 2012-03-05

软件简介

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

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

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

  • 超高的性能:Beetl 远超过主流java模板引擎性能,如5-6倍于freemarker,2倍于传统jsp技术。而且消耗较低的CPU

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

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

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

  • 核心实现是脚本语言,可以作为规则引擎,表达式计算,脚本语言使用

 

关于模板引擎性能

 

最新模板性能测试,各个模板引擎均采用最新版本, Score 越大越好

Beetl>Rocker>>Freemarker>>Thymeleaf==Velociy

Benchmark              Mode  Cnt      Score      Error  Units

Beetl.benchmark       thrpt    5  141912.506 ± 19090.130  ops/s
Freemarker.benchmark  thrpt    5   48062.783 ±  9054.282  ops/s
Handlebars.benchmark  thrpt    5   48505.286 ±  6078.944  ops/s
Rocker.benchmark      thrpt    5  102699.041 ± 11827.123  ops/s
Thymeleaf.benchmark   thrpt    5   14495.261 ±  1460.815  ops/s
Velocity.benchmark    thrpt    5   12071.498 ±  4226.219  ops/s

 

关于表达式引擎性能

最新规则引擎性能测试,Score 越大越好

JfireEL>> Aviator=Beetl=Jexl3 >>Spel>>Mvel=Groovy>>Nashor

Benchmark               Mode  Cnt         Score        Error  Units
Aviator.forExpresss    thrpt    5    501413.321 ±   4657.336  ops/s
Aviator.ifExpresss     thrpt    5   4699456.542 ± 266831.101  ops/s
Aviator.simpleExpress  thrpt    5   3868701.018 ±  38439.986  ops/s
Beetl.forExpresss      thrpt    5   1685875.017 ±  28454.020  ops/s
Beetl.ifExpresss       thrpt    5   4461489.443 ±  78687.317  ops/s
Beetl.reflect          thrpt    5     62972.088 ±  85785.390  ops/s
Beetl.simpleExpress    thrpt    5   4328852.130 ± 144586.699  ops/s
Groovy.ifExpresss      thrpt    5    119493.364 ±   1472.301  ops/s
Groovy.simpleExpress   thrpt    5    121724.720 ±   1533.726  ops/s
Jexl3.forExpresss      thrpt    5    789815.632 ±  42390.393  ops/s
Jexl3.ifExpresss       thrpt    5   4500714.752 ± 138214.400  ops/s
Jexl3.simpleExpress    thrpt    5   3901843.173 ± 125472.114  ops/s
JfireEL.ifExpresss     thrpt    5  28337464.920 ± 291859.385  ops/s
JfireEL.simpleExpress  thrpt    5  18824292.084 ± 103241.504  ops/s
Mvel.forExpresss       thrpt    5     11954.857 ±     84.105  ops/s
Mvel.ifExpresss        thrpt    5    230373.242 ±   1827.288  ops/s
Mvel.simpleExpress     thrpt    5    316083.646 ±   1320.717  ops/s
Nashorn.ifExpresss     thrpt    5     10010.541 ±    752.057  ops/s
Nashorn.simpleExpress  thrpt    5      8993.022 ±    518.940  ops/s
Spel.ifExpresss        thrpt    5    850338.540 ±  41826.542  ops/s
Spel.simpleExpress     thrpt    5    636251.839 ±   2553.017  ops/s
 

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(63) 发布并加入讨论🔥
发表了资讯
02/27 09:51

Beetl 模板引擎 3.16,JDK 21支持

Beetl 研发自 2010 年,国内流行 Java 模板引擎,世界唯一支持自定义占位符,唯一同时支持标签语法,脚本语法的模板引擎,且可以作为表达式引擎使用 文档 源码 在线体验 模板性能测试 表达式引擎性能测试 本次修复 Beetl 潜在安全漏洞修复 ,Beetl安全漏洞有可能存在于在将模板编写权限交给C端用户场景 提供Java方法调用白名单机制WhiteListNaticeSecurityManager 升级对antlr4.13支持,支持JDK21+SpringBoot3+Spring6 最新版本...

2
0
发表了资讯
2023/12/11 10:28

Beetl 模板引擎 3.15.12 发布,Java 模板引擎

Beetl研发自2010年,国内流行Java模板引擎 文档 源码 在线体验 模板性能测试 表达式引擎性能测试 性能优化指南 本次调整 * 修复自从2019年Beeetl2升级到Beetl3,不支持自定义方法提供的Context参数问题修复 public class MyUtil{ // 模板中 ${util.add(1)} public static int add(int x,Context ctx){ return x+ (Integer)ctx.getGlobal("otherVar")} } Maven <dependency> <groupId>com.ibeetl</groupId>...

3
3
发表了资讯
2023/07/12 10:00

Beetl 模板引擎 3.15.7 发布,Java 模板引擎

完成需求 I7KEB8,默认运算采用精度运算。 Beetl默认情况下当遇到数字以h结尾的时候,认为是BigDecimal类型,随后运算使用高精度运算。 var a= 3434.33h*233334; 新版本增加配置,不允许显示的使用h表示高精度类型 BIGDECIMAL=true 则默认所有数字都翻译成BigDecimal Script script = groupTemplate.getScript("return 5/3;",loader); script.execute(); if(script.isSuccess()){   Object value = script.getResult().g...

1
0
发表了资讯
2023/04/18 09:58

Beetl 模板引擎 3.15.4 发布,Java 模板引擎

Beetl 作为脚本引擎运行脚本支持共享变量 增加子模块,集成beetl-online,beetl在线体验更新到最新的beetl版本 Maven <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.15.4.RELEASE</version> </dependency> 文档 源码 在线体验 模板性能测试 表达式引擎性能测试 性能优化指南 最新模板性能测试,各个模板引擎均采用最新版本, Score 越大越好 Beetl>Rocker>>Free...

4
4
发表了资讯
2023/04/10 09:56

Beetl 模板引擎 3.15.3 发布,语法文件调整

修改antlr语法文件,提供勘误备选分支 constantsTextStatment: LEFT_TEXT_TOKEN DecimalLiteral RIGHT_TOKEN RIGHT_BRACE {notifyErrorListeners("遇到未能匹配的符号'}',缺少'{'");} |LEFT_TEXT_TOKEN DecimalLiteral RIGHT_TOKEN // 常量输出,代表数组搜应 开发人员通常会写‘{’,但忘记写 ‘}’, 少见情况下,开发人员只写符号’}',没有'{' 情况下报错。 Maven <dependency> <group...

3
0
发表了资讯
2023/04/10 09:57

BeetlSQL 3.22.0 发布,支持 XML 管理 SQL 文件

支持XML设置ResultMap映射,参考文档说明 更新beetl到最新版本,支持更友好的出错提示 <sql id="testSql"> select * from sys_user where 1=1 <isBlank value="name">    and name='lijz' </isBlank> </sql> <resultMap id="complexMap"> <result property="id" column="id"/> <!-- 剩下字段映射到Info对象 --> <association property="info" > <result property="name" column="name"/> ...

3
1
发表了资讯
2023/04/03 00:52

Beetl 模板引擎 3.15.1 发布,安全漏洞修复

本次主要修复了安全漏洞:Beetl 存在 SSTI 漏洞[BUG]。此漏洞不像JSON序列化工具安全漏洞具有普遍性,漏洞只会发生于"在线运行模板引擎"的系统 如果不使用此版本,为了避免漏洞,可以禁用Beetl本地Class调用,也可以自定义安全管理器,加上对java.lang.Class.forName的限制 public class YourNativeSecurityManager implements NativeSecurityManager { @Override public boolean permit(Object resourceId...

0
1
发表了资讯
2023/03/24 09:46

Beetl 模板引擎 3.15 发布,支持 SpringBoot3

新增发布包beetl-antlr4.5,支持antlr4.5,antlr4.6 新增发布包beetl-antlr4.11,支持antlr4.10,antlr4.11,antlr4.12 SpringBoot3 支持,使用beetl-springboot-starter-jdk17,结合@EnableBeetl支持Beetl模板引擎 @SpringBootApplication @EnableBeetl public class TestSpringBoot3Application { public static void main(String[] args) { SpringApplication.run(TestSpringBootApplication.class, args);...

6
1
发表了资讯
2023/02/13 10:19

Beetl 模板引擎 3.14 发布,支持 SpringBoot3

本次发布主要支持SpringBoot3+Spring6+JDK17,也对项目结构做了调整 以SpringBoot3为例子 <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl-spring-boot-starter</artifactId> <version>3.14.1.RELEASE</version> </dependency> Java代码使用@EnableBeetl启用Beetl模板引擎 @SpringBootApplication @EnableBeetl public class TestSpringBootApplication { public static void main(St...

7
4
发表了资讯
2022/10/17 10:12

Beetl 3.13 发布,Java 流行模板引擎

增加长文本支持 修复3.12支持多版本antlr带来错误提示不准的问题。 长文本语法同python,允许使用""",或者''' var sql = """ select * from test """; https://v9frqqg4eq.feishu.cn/minutes/obcnz748l4177jk8g2p2n53v 这个6分钟视频解释了如何支持 <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.13.0.RELEASE</version> </dependency> 文档 源码 在线体...

0
1
发表了资讯
2022/09/28 11:04

Beetl 3.11 发布,Java 模板引擎

本次发布新增了对Antlr 4的各个版本支持,并调整了工程内部结构 支持Antlr4.5,artifactId为beetl-antlr4.5-support,有些使用beetl的也会自带antlr4.5(比如hive) 支持Antlr4.11,artifactId为beetl-antlr4.11-support 默认使用Antlr4.9,artifactId不变,为beetl 性能优化,增加了SoftReferenceWriter,某些场景下性能增加15% 工程结构分成beetl,beetl-core,beetl-ext,tempalte-benchmark,express-benchmark,beetl-antlr4.5-su...

4
3
发表了资讯
2022/02/07 09:37

Beetl 3.10 发布,Java 模板引擎

本次发布增加了新的语法特性“泛型”,用于说明变量类型。使用var定义的变量,可以申明变量类型 <% var<int> list = [1,2,3]; var<String,String> map = callFun(); var<String,Map<String,User>> map = callFun2(); %> 申明变量类型的格式类似Java的泛型,此申明也类似java泛型一样不会影响实际运行,仅仅作为辅助解释类型用,相当于注释. Beetl语法中使用var关键字的地方,都可以使用泛型格式解释变量的类型,如for...

7
1
发表了资讯
2021/11/22 09:34

Beetl 3.9 发布,Java 模板引擎

修复了3.6版本以来开发模式下模板不自动更新的Bug 增加格式化函数支持LocalDateTime,来自社区的代码 增加SoftReferenceWriter,一定程度上增加Beetl性能 Beetl 是一款全功能,高性能优秀的国产模板引擎,各方面特性领先国外同类引擎技术,可以广泛用于动态页面生成,静态页面生成,代码生成,文本转换,脚本语言和规则引擎等,从 2011 年来一直维护,并得到国内公司用户的赞赏。 Maven <dependency> <groupId>com.ibeet...

5
2
发表了资讯
2021/10/28 10:12

Beetl 3.8.0 发布,Java 模板引擎

本次发布改善了 Function 功能,让 Beetl 在语法解析阶段能定制 Function 增加 LineAware 接口,实现此 Function 的函数,会在调用时候,在参数列表后追加一个所在行的参数,如 debug 函数,可以输出变量和调用时候所在的行 增加 ForceSafe 接口,实现此 Function 的函数,会在调用的时候,参数列表会增加一个安全输出符号,如 isEmpty 函数 isEmpty(user) 会变成 isEmpty(user!) 增加 ChangeInput 接口,更加通用的方式,可以自...

2
1
发表了资讯
2021/09/21 09:46

Beetl 3.7.0.RELEASE,Java 模板引擎

本次发布API有不兼容调整,如果扩展了Program或者ErrorHandler类,需要同步升级 Program类变得可序列化,方便把模板编译结果序列化后保存到第三方缓存里 ErrorHandler 处理模板异常的方法增加一个上下文参数 修复了代表模板错误的ErrorGrammarProgram类重复记录异常栈的Bug Beetl是一款全功能,高性能优秀的国产模板引擎,各方面特性领先国外同类引擎技术,可以广泛用于动态页面生成,静态页面生成,代码生成,文本转换,脚本语言...

1
3
发表了资讯
2021/08/30 22:41

Beetl 3.6.1.RELEASE,Java 模板引擎 Beetl

本次发布有不兼容发布,如果在之前对Beetl模板缓存有配置,需要按照新的方式配置模板缓存 增加了对模板缓存的设置 CACHE=org.beetl.core.impl.cache.DefaultBeetlCache 用户可以实现IBeetlCache,其他可选有 org.beetl.core.impl.cache.LRUBeetlCache, 可以设置一个最大容量,经常访问的模板保留,超过最大容量,不经常访问的模板自动删除,默认保留256个,如果需要配置个数,可以设置CACHE.SIZE=1024或者更大 org.beetl.core...

3
1
发表了资讯
2021/08/06 12:37

Beetl 3.5.0.RELEASE,Java 模板引擎 Beetl

本次发布增加了俩个实用功能 创建模板语法树的时候,可以较为方便的动态添加第一条和最后一条语句,比如最后可以添加一个调试语句,参考MyEngineTest.testEngine 可以根据模板id来动态判断定界符,比如代码生成框架,html结尾的模板可以用定界符『<!--:』 『-->』 ,而Java结尾的模板可以用定界符『//:』 和 『回车』,增强代码生成灵活性。参考MyEngineTest.testDelimeter Beetl是一款全功能,高性能优秀的国产模板引擎,各方面...

2
3
发表了资讯
2021/07/20 10:24

Beetl 3.4.0.RELEASE,Java 模板引擎 Beetl

使用了ANTLR 4.9.2版本,代替4.7.2 百度同学对Beetl代码可读性持续数月的的调整,在这个版本验证发布 代码升级到antlr4.9后,性能测试如下(测试代码:https://gitee.com/xiandafu/template-benchmark) Benchmark (outputType) Mode Cnt Score Error Units Beetl.benchmark 1 thrpt 5 84457.196 ± 1023.689 ops/s Freemarker.benchmark 1 thrpt 5 236...

7
5
发表于开发技能专区
2020/12/17 12:12

Beetl 3.3.1.RELEASE,Java 模板引擎 Beetl

本次发布增强了HTML标签,调整了HTML标签export的含义,允许覆盖模板前面export的变量 <#html:set value="${user.name}" export="name" /> <#html:set value="${user.age}" export="name" /> ${name} 如上html:set 定义了name变量,之前版本不允许再次定义,按照使用者的建议,这次版本发布允许再次定义 <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.3.1.RELEASE<...

3
4
发表于数据库专区
2020/12/11 15:19

Beetl 3.3.0.RELEASE,Java 模板引擎 Beetl

引入百度小伙伴对代码风格进行的微调整。 删除核心类GroupTemplate的所有Deprecated方法,可能会导致不兼容,需要使用推荐的API <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.3.0.RELEASE</version> </dependency> Beetl是一款全功能,高性能优秀的国产模板引擎,可以广泛用于动态页面生成,静态页面生成,代码生成,文本转换,脚本语言和规则引擎等,从2011年来,一直维...

5
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
63 评论
1K 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部