Java 模板引擎 Webit Script 1.2.2 发布
1. 又是一个Java模板引擎
2. 基于java 5 开发,不依赖其他第三方库
3. 语法类似于Javascript,弱类型,甚至是闭包特性
4. 只有解释执行,支持热加载,但是性能依然给力
5. 灵活自由的设计,支持扩展资源加载器、日志、属性访问器、安全管理器
6. 采用IoC的机制管理组件,配置更方便、自由
7. 可以把它当成一个脚本语言,它允许你进行特殊的set操作,
例如: user.name = "my new name";
Q&A
1. 现在已经有很多开源的模板引擎了为什么要重复制造轮子?
这个重复造轮子是必须的,坦克的轮子不适合装在飞机上。
2. 为啥解释执行的性能依然这么给力?
首先归功于现代JVM的优化能力。
其次,采用ASM的方式对Bean进行get/set操作避免反射也在一定程度上发挥了作用。当然 如果你不喜欢ASM可以关闭它,使用反射,或者定义自己的Resolver。
同时,在IO上也做了大量的优化,尽量避免分配大数组以及之间的COPY。
最后,在关键位置编码的时候都非常谨慎,在不影响代码质量的情况下尽量少分配局部变量、调整局部变量位置及顺序,使其生成更有质量的字节码。
3. 为啥不做编译执行?
编译执行无非是为了性能,解释执行已经很给力了,做编译执行意义不大。
其次,双执行引擎之间往往存在差异,很难保证输出结果完全一致,也会限制以后的发展,尤其是功能上的。
还剩很多版面,来个例子把,希望能说服你试一试
1.2.2 更新日志:
- 【新增】Spring MVC 视图支持
- 【新增】Struts 视图支持
- 【新增】Servlet 视图支持
- 【新增】JFinal视图支持,提供硬编码添加设置的API
- 【新增】对HttpServletRequest getHeader/getHeaders 的友好支持
- 【增强】JFinal视图支持,缺省无需额外的配置文件
- 【调整】调整异常输出机制,保证代码质量
- 【调整】调整配置文件加载机制,使得日志输出能够打印出所有加载的配置文件
同时我们还提供了对于以上各种MVC整合Webit Script的示例,请移步 webitscript-mvc-demo
另外Webit Script专用的词法分析器,java_cup修改版,也提供了源代码,感兴趣的小伙伴请移步 java_cup-for-webitscript