- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Groovy 分享
* Groovy @ Taobao 部门:产品技术部 日期:2010-03-15 雷卷 * 日程 Groovy介绍 Groovy和Java的关系 淘宝的潜在应用场景 开源框架 IDE 潜在问题 Velocity FAQ * Groovy介绍 基于JVM的动态脚本语言(Agile) 语法更丰富:Closure MOP(元编程) DSL 更新快 * Groovy和Java的关系 Groovy 1.5后,Groovy和Java是互操作的(Joint Compiler) Groovy在JDK上进行了扩充,GDK 完全兼容Java规范 * 淘宝潜在应用 重新加载需要:Module 减少代码量的:Webx Screen Action 自定义DSL:自定义流程,逻辑等 脚本(SA):Grape 管理系统开发:Grails 特定的ClassLoader机制:HSF * 开源的框架 Grails: Web Framework Griffon:DeskTop Application Framework Gradle:Build Tool Gealyk:Google App Engine Framework Gmaven:Groovy Maven Plugin * Grails Agile Web Framework Rails Like Powerful View ORM Plugins * Gaelyk Google App Engine Lightweight Framework Simple Extend * IDE工具 IntelliJ IDEA 功能强大:binding变量注入 Eclipse Plugin * Velocity velocity_implicit.vm vtlvariable annotation Structure Language Injection * * * 潜在的问题 性能:性能很差 性能为何差:全部动态调用 解决方法: Groovy++,脚本要小,核心逻辑仍然用Java写 def问题,虽然是弱类型语言,但是不要进行弱类型处理 * * * * @Grapes([ @Grab(com.oracle:ojdbc5:11.1.0.7.0),@GrabConfig(systemClassLoader=true)]) sql = groovy.sql.Sql.newInstance(jdbc:oracle:thin:@10.1.5.11:1521:XE, system, abc123, oracle.jdbc.OracleDriver) sql.eachRow(select sysdate as now from dual, { println -- ${it.now} --}); * * * * * #* @vtlvariable name=userName type=java.lang.String *# * * * * * * * * * @Grapes([ @Grab(com.oracle:ojdbc5:11.1.0.7.0),@GrabConfig(systemClassLoader=true)]) sql = groovy.sql.Sql.newInstance(jdbc:oracle:thin:@10.1.5.11:1521:XE, system, abc123, oracle.jdbc.OracleDriver) sql.eachRow(select sysdate as now from dual, { println -- ${it.now} --}); * * * * * #* @vtlvariable name=userName type=java.lang.String *# * * * * *
文档评论(0)