mop
飞飞狐
java开发
展开
-
用Groovy源编程(MOP)动态拦截(AOP)方法(比如记录String的concat和toUpperCase方法的耗费时间)
实现AOP的方式有很多种,像Spring的AOP,它只能拦截Spring托管的bean;Groovy AST Transformations、ASM等在编译阶段通过修改字节码也可以做AOP;JAVA HOOK也可以做,但比较麻烦。 Groovy MOP提供了一种很简单的方法实现AOP。 下面通过例子试用一下: 如果想动态拦截某个方法,不想改源代码(或者不能改源码,比如String已经是f原创 2012-09-10 17:32:32 · 1770 阅读 · 0 评论 -
Groovy元编程MOP(ExpandoMetaClass:EMC)的应用场景
使用ExpandoMetaClass和Category可以实现元编程。ExpandoMetaClass可以动态添加和修改类的构造器,方法和属性。Category只能动态添加和修改类的方法。 当使用EMC动态添加或修改方法时,闭包Closure作为方法体被传入,它的delegate指向调用此方法的实例。 具体使用可参考:http://www.groovyq.net/node/75 1、为类原创 2012-09-20 16:46:13 · 2001 阅读 · 0 评论 -
Groovy元编程MOP(ExpandoMetaClass:EMC)的应用场景
使用ExpandoMetaClass和Category可以实现元编程。ExpandoMetaClass可以动态添加和修改类的构造器,方法和属性。Category只能动态添加和修改类的方法。 当使用EMC动态添加或修改方法时,闭包Closure作为方法体被传入,它的delegate指向调用此方法的实例。 具体使用可参考:http://www.groovyq.net/node/75 ...2012-09-20 16:49:53 · 119 阅读 · 0 评论