`
subchen
  • 浏览: 15724 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jetbrick-template-1.0.0 发布,全新JAVA模板引擎

阅读更多

全面超越 Velocity 的全新一代 Java 模板引擎 jetbrick-template 1.0.0 正式版发布。

 

概述 Overview

jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性。 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板。 指令和 Velocity 相似,表达式和 Java 保持一致,易学易用。

  • 支持类似与 Velocity 的多种指令
  • 支持静态编译
  • 支持编译缓存
  • 支持热加载
  • 支持类型推导
  • 支持泛型
  • 支持可变参数方法调用
  • 支持方法重载
  • 支持类似于 Groovy 的方法扩展
  • 支持函数扩展

文档 Documents

http://subchen.github.io/jetbrick-template/

简单易用的指令

jetbrick-template 指令集和老牌的模板引擎 Velocity 非常相似,易学易用。

#define(List<UserInfo> userlist)
<table>
  <tr>
    <td>序号</td>
    <td>姓名</td>
    <td>邮箱</td>
  </tr>
  #for (UserInfo user : userlist)
  <tr>
    <td>${for.index}</td>
    <td>${user.name}</td>
    <td>${user.email}</td>
  </tr>
  #end
</table>

基本开发 API

  1. 创建自定义配置的 JetEngine 对象。推荐使用单例模式创建。
  2. 根据模板路径,获取一个模板对象 JetTemplate
  3. 创建一个 JetContext 对象,并加入你的 data objects。
  4. 准备一个待输出的对象,OutputStream 或者 Writer
  5. 根据你的 data objects 来渲染模板,并获得输出结果。

具体的 Java 代码,看上去是这样的:

// 创建一个默认的 JetEngine
JetEngine engine = JetEngine.create(); 

// 获取一个模板对象
JetTemplate template = engine.getTemplate("/sample.jetx");

// 创建 context 对象
JetContext context = new JetContext();
context.put("user", user);
context.put("books", books);

// 渲染模板
StringWriter writer = new StringWriter();
template.render(context, writer);

// 打印结果
System.out.println(writer.toString());

卓越性能 Perfermance

jetbrick-template 将模板编译成 Java ByteCode 运行,并采用强类型推导,无需反射和减少类型转换。渲染速度等价于 Java 硬编码。比 Velocity 等模板快一个数量级。 比 JSP 也快,因为 JSP 只有 Scriptlet 是编译的,Tag 和 EL 都是解释执行的。 而 jetbrick-template 是全编译的。

perfermance

在 Stream 模式中(Webapp 采用 OutputStream 将文本输出到浏览器),由于 Java 硬编码输出字符串需要进行一次编码的转换。 而 jetbrick-template 却在第一次运行期间就缓存了编码转换结果,使得 jetbrick-template 的性能甚至优于 Java 硬编码。

测试平台 platform: Window 7 x64, Intel i5, 16GB RAM, JDK 1.6.0_41 x64

分享到:
评论

相关推荐

    包含alipay-sdk-java-1.0.0.jar,alipay-trade-sdk-1.0.0.jar

    这里提到的两个核心组件是`alipay-sdk-java-1.0.0.jar`和`alipay-trade-sdk-1.0.0.jar`。 `alipay-sdk-java-1.0.0.jar`是基础的支付宝Java SDK,它提供了与支付宝服务器通信的基本框架和类库。这个SDK包含了处理...

    jd-eclipse-site-1.0.0-RC2.zip

    《jd-eclipse-site-1.0.0-RC2.zip:Eclipse查看源码插件详解》 在软件开发过程中,对于Java开发者来说,Eclipse是一款广泛应用的集成开发环境(IDE)。然而,有时我们可能需要查看Java类的源代码,以便更好地理解其...

    HC32L136华大单片机 - HC32L136-IDE-Rev1.0.0

    HC32L136华大单片机 - HC32L136-IDE-Rev1.0.0

    aliyun-java-sdk-dybaseapi-1.0.0.jar

    阿里云短信必备jar,阿里云短信必备jar,阿里云短信必备jar,

    rocketmq-console-ng-1.0.0.jar

    rocketmq-console-ng-1.0.0.jar 编译好的jar包 可以直接使用

    aliyun-java-sdk-dysmsapi-1.0.0

    最新下载的 阿里云短信服务器所需jar包之一,... &lt;artifactId&gt;aliyun-java-sdk-core &lt;version&gt;3.2.2 如此引用即可,更多关于阿里云短信发送相关请参考http://blog.csdn.net/niaoer2010/article/details/78036664

    rocketmq-console-ng-1.0.0.zip

    "rocketmq-console-ng-1.0.0.jar"是这个压缩包的核心文件,是一个Java可执行的jar(Java Archive)文件。在Java开发中,jar文件通常用于打包类库、资源文件以及应用程序,以便于分发和运行。RocketMQ Console的jar...

    datavec-data-image-1.0.0-M1.1-API文档-中文版.zip

    赠送jar包:datavec-data-image-1.0.0-M1.1.jar; 赠送原API文档:datavec-data-image-1.0.0-M1.1-javadoc.jar; 赠送源代码:datavec-data-image-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:datavec-data-...

    hbase-hbck2-1.0.0.jar

    Hbase修复工具 示例情景: Q:缺失hbase.version文件 A:加上选项 -fixVersionFile 解决 Q:如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中 ...

    hibernate-jpa-2.1-api-1.0.0.final-sources.jar

    hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码 hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码

    nd4j-native-1.0.0-M1.1-API文档-中文版.zip

    赠送jar包:nd4j-native-1.0.0-M1.1.jar; 赠送原API文档:nd4j-native-1.0.0-M1.1-javadoc.jar; 赠送源代码:nd4j-native-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:nd4j-native-1.0.0-M1.1.pom; 包含...

    tomcat6-dta-ssl-1.0.0.jar

    tomcat6-dta-ssl-1.0.0.jar 此类文件将有助于tomcat支持ssl协议

    deeplearning4j-modelimport-1.0.0-M1.1-API文档-中文版.zip

    赠送jar包:deeplearning4j-modelimport-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-modelimport-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-modelimport-1.0.0-M1.1-sources.jar; 赠送Maven依赖...

    jd-eclipse-site-1.0.0-RC2

    【jd-eclipse-site-1.0.0-RC2】是一个针对Eclipse集成开发环境的插件包,主要用于查看和分析Java的jar包中的class文件源代码。在Java开发过程中,有时我们需要查看已编译的类文件(class文件)的源代码,但由于这些...

    signed_firefox-flashplayer_1.0.0-3_arm64.deb

    flash_arm架构

    deeplearning4j-modelimport-1.0.0-M1.1-API文档-中英对照版.zip

    赠送jar包:deeplearning4j-modelimport-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-modelimport-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-modelimport-1.0.0-M1.1-sources.jar; 赠送Maven依赖...

    Java-mailchimp-v1.0.0

    Java-mailchimp-v1.0.0 是一个基于Java编写的Mailchimp API客户端库,主要用于管理和操作Mailchimp中的邮件列表成员。Mailchimp是一个流行的电子邮件营销服务,它允许用户创建、发送和跟踪电子邮件活动。这个库专注...

Global site tag (gtag.js) - Google Analytics