![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GROOVY
GroovyObject
这个作者很懒,什么都没留下…
展开
-
Groovy 构建命令行参数
http://blog.chenlb.com/2008/12/groovy-cli-builder-easy-build-command-line-program.html原创 2010-04-11 02:32:00 · 1992 阅读 · 0 评论 -
Linux 下安装Groovy
<br />两种方式在linux下安装groovy:<br />1、直接通过rpm进行安装,具体步骤如下:<br /> 1、输入命令 wget http://dist.groovy.codehaus.org/distributions/rpm/groovy-1.7.1-2.noarch.rpm 下载安装文件<br /> 2、使用rmp命令进行安装: rpm -ivh groovy-1.7.1-2.noarch.rpm,这里的安装是基于一定的权限的,因为会在安装包既定的目录下生成原创 2010-10-23 17:10:00 · 4855 阅读 · 0 评论 -
关于Groovy脚本
Groovy本身是可以作为脚本以松散的代码方式执行的。前面的文章中已经说过了groovy脚本的代码组织方式。本文主要是谈谈Groovy脚本中关于方式调用,脚本相关属性访问的问题。我们编写松散的Groovy代码,实际上就是在实现Groovy脚本对象Script的run方法。当然我们可以定义方法,当我们引用一个方法的时候,首先是从对应的MetaClass中去寻找对应的方法,如果找不到便从自己的Bi原创 2010-05-15 22:32:00 · 3803 阅读 · 1 评论 -
共享Binding共享代码
如果有脚本作为业务逻辑来运作,有大批量的脚本,每个脚本对应一个独立的业务功能点,比如支持一面上某一功能的展示。有这样的应用场景,将Groovy脚本作为Velocity背后的逻辑语言支持。每个Groovy脚本负责页面上一个功能点的数据准备。然而在一个又有数十个上百个WEB应用系统协作运行的大型分布式WEB应用系统,很多时候,我们需要在不同的应用的不用页面上展示某些相同的功能,然后又有更为疯狂的想法,原创 2010-05-15 15:13:00 · 1117 阅读 · 0 评论 -
MetaClass何时创建
MetaClassRegistry 维护着class和meta=class之间的对应关系。那么这个映射表中键值对又是在什么时候添加的喃?有两种情况,比如我们的代码中主动地设置,比如我们使用了ExpandoMetaClass来扩展java类,另外一种情况是就是Groovy本身的Class是何时与其MetaClass挂钩的?之前有猜想过,这种映射关系是在加载了groovy的Class之后,也就原创 2010-05-17 00:19:00 · 1114 阅读 · 0 评论 -
Groovy 语言模型序
很好奇GROOVY是如何在JAVA语言的基础上平添了如此之多的强大功能和语言特性。翻看了一些GROOVY的源代码。语言的特性,离不开语言底层模型的支持,在构建好自己的语言模型之后,接下来需要的就是形式化的东西,也就是语法,遵循语法编写代码,以用编译器构建出既定的语言模型体系下的字节码,然后再JVM机上无差别于JAVA代码一样运行,我理解的Groovy就是这样。 GROOVY可原创 2010-04-23 00:23:00 · 4078 阅读 · 1 评论 -
GROOVY对象模型
Groovy可以以松散的脚本方式来组织代码,也可以以类的方式来组织。Groovy不想其它的脚本语言能够在不完全编译的情况下执行,即一边执行代码,一边写代码,Groovy的代码必须完整装载,分析之后才能够执行。Groovy运行时支持两中对象,Script对象和Groovy class对象这两种对象都统一为GroovyObject这一接口。具体关系如图:原创 2010-04-10 18:29:00 · 1168 阅读 · 0 评论 -
Groovy五种特殊预算符
转自http://flowercat.javaeye.com/blog/639125转载 2010-04-10 18:13:00 · 721 阅读 · 0 评论 -
Groovy与Java的基本不同点
1、逻辑运算符 == ,在java中运算符 == 是用作对比两个对象的标识是否一样,或者对于基本类型而言数据值是否相等。基本类型和对象数据之间是不可以用直接意义上的比较,java中采用的是将对象类型拆箱,而在groovy中,由于自动装箱的功能,一切都是对象。要使得 == 比较有通用性的意义,groovy通过equals()来重载 == 预算符。 2、 在groovy中以下包都是默认引用的,原创 2010-04-16 00:30:00 · 1326 阅读 · 0 评论 -
使用闭包、ExpandoMetaClass 和类别进行元编程
http://www.ibm.com/developerworks/cn/java/j-pg06239.html转载 2010-04-11 12:36:00 · 711 阅读 · 0 评论 -
Groovy 脚本接受命令行参数
我们很多时候将groovy作为脚本,在命令行执行。脚本中如何接受参数来制定脚本的行为喃?代码如下if (this.args.size() !=2 ) { println "this script expects exactly two arguments"}else{ this.args.each{ println it }}在脚本中通过使用this.arg原创 2010-04-11 11:30:00 · 8264 阅读 · 0 评论 -
构建和解析 XML 全攻略
http://www.ibm.com/developerworks/cn/java/j-pg05199/index.html转载 2010-04-11 12:02:00 · 902 阅读 · 0 评论 -
Groovy MOP
Groovy方法和属性都是动态调用的。只有在调用的时刻才知道方法或者属性是否存在,方法的具体行为。Groovy这种动态特性离不开MetaClass的存在,MetaClass是groovy实现MOP的灵魂。 MetaClass接口继承自MetaObjectProtocol。原创 2010-04-11 02:31:00 · 958 阅读 · 0 评论 -
动态判定Groovy对象方法和属性是否存在
<br /><br />Groovy的动态特性允许对象和类都能够在运行期动态地添加方法和属性,在复杂的应用场景,我们很难判断一个具体的对象是否有某个方法。<br />也有这么一个应用场景,是我所经历到的,Groovy脚本代码被不同的java应用系统加载,脚本依赖于各个应用系统提供的java环境运行,这个环境<br />包括当前应用的classpath中有哪些jar包,jar包版本等等,以及由具体应用系统通过bingding对象向脚本中注入的一系列的作为技术服务的bean,<br />比如获取数据的接口bea原创 2010-10-23 13:46:00 · 9705 阅读 · 0 评论