- 浏览: 148865 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
hacker_zxf:
最近再去看quartz实现,job都是new出来的,如果需要自 ...
Quartz--JAVA计划任务 -
hacker_zxf:
quartz 的扩展型做的不好,本来试图将表达式扩展成支持毫秒 ...
Quartz--JAVA计划任务 -
piaoxue_x:
嗯,看看。。。。貌似不错,谢谢了。。。
Quartz--JAVA计划任务 -
673341766:
麻烦你看一下 红色的信息是报错好吧.
Quartz--JAVA计划任务 -
helong0904:
...
spring quartz配置定时器
public class Man { public String say() { System.out.println("cglib hello~~~"); return "return cglib hello"; } }
import java.lang.reflect.Method; import net.sf.cglib.proxy.CallbackFilter; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; public class AOPInstrumenter implements MethodInterceptor,CallbackFilter { private Enhancer enhancer = new Enhancer(); private Object sub; public AOPInstrumenter(Object obj) { super(); this.sub = obj; } public Object getInstrumentedClass(Class clz) { enhancer.setSuperclass(clz); //設置callback是this enhancer.setCallback(this); //添加 方法过滤器 返回1为不运行 0 为运行 enhancer.setCallbackFilter(this); return enhancer.create(); } public Object intercept(Object o, Method method, Object[] arg, MethodProxy proxy) throws Throwable { System.out.println("cglib 111111"); Object obj = proxy.invoke(sub, arg); System.out.println("cglib 222222"); return obj; } public int accept(Method method) { System.out.println("accept........."+method.getName()); return 0; } }
public class AOPTest { public static void main(String[] args) { Man man = new Man(); AOPInstrumenter instrumenter = new AOPInstrumenter(man); Man man1 = (Man) instrumenter.getInstrumentedClass(Man.class); man1.say(); } }
運行結果:
accept.........say accept.........hashCode accept.........finalize accept.........clone accept.........equals accept.........toString cglib 111111 cglib hello~~~ cglib 222222
-------------------------------------------
稍作修改:
import java.lang.reflect.Method; import net.sf.cglib.proxy.CallbackFilter; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; public class AOPInstrumenter implements CallbackFilter { public Object getInstrumentedClass(Class clz) { Enhancer enhancer = new Enhancer(); //设置需要代理的类 enhancer.setSuperclass(clz); //設置callback是this enhancer.setCallback(new ManMethodInterceptor()); //添加 方法过滤器 返回1为不运行 0 为运行 enhancer.setCallbackFilter(this); //创建一个代理 return enhancer.create(); } public int accept(Method method) { System.out.println("accept........."+method.getName()); return 0; } }
import java.lang.reflect.Method; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; public class ManMethodInterceptor implements MethodInterceptor{ public Object intercept(Object o, Method method, Object[] arg, MethodProxy proxy) throws Throwable { System.out.println("cglib 111111 name: " + method); //Object obj = proxy.invoke(o, arg); Object obj = proxy.invokeSuper(o, arg); System.out.println("cglib 222222"); return obj; }
public class AOPTest { public static void main(String[] args) { AOPInstrumenter instrumenter = new AOPInstrumenter(); Man man1 = (Man) instrumenter.getInstrumentedClass(Man.class); man1.say(); } }
发表评论
-
JAVA 应用监控
2011-11-17 15:09 1141监控一个应用可以有很多好处,xxxxx 这里就不说了 不同应 ... -
顺序打印ABC,连续打10次
2011-06-14 22:23 1614import java.util.concurrent.ato ... -
JVM内存模型以及垃圾回收教程概述【转】
2011-01-18 15:21 1005摘自:http://www.zhixing123. ... -
JAVA并发编程(一) 并发基础
2011-01-05 19:32 9804. 组合对象线程安全 4.1 设计线程安全的类 使用公共 ... -
[转]JAVA语言的反射和内省
2010-11-25 12:04 759转自: http://blog.csdn.net/ ... -
java 强、软、弱、虚引用
2010-11-18 22:54 10551.强引用 本章前 ... -
计算机常识:字符编码简介——ASCII、Unicode、UTF-8、GB2312
2010-11-03 14:40 1288字符编码简介:ASCII,Unicode,UTF-8,GB23 ... -
Apache Log4j配置说明
2010-10-25 21:00 721Apache Log4j配置说明 摘自Blog: http:/ ... -
java.lang.reflect 动态代理
2010-04-25 20:01 868public interface IReport { ... -
META-INF中的MANIFEST.MF的作用
2010-03-28 18:21 1247MANIFEST中的配置信息共有下面几类:一. 一般属性1. ... -
JAVA的容器---List,Map,Set
2009-12-22 22:09 759JAVA的容器---List Map Set Coll ... -
annotation 例子
2009-11-28 05:29 983@Retention : RetentionPolicy. S ... -
JAVA 同步 (一)
2009-11-09 21:36 717永远只能更新对象的成员变量时加锁 永远只能在访问有可能被更新对 ... -
JAVA中枚举(Enum)的系列文章 - 反向查找、总结
2009-05-12 14:00 1863转自:http://www.sinojava.co ... -
反射例子
2009-04-20 20:18 1032定义一个用户,作为被反射对象; public class Us ... -
两个反射的小例子
2009-04-15 16:04 940HashMap map = new HashMap(); ... -
utf转UnicodeBig
2008-12-23 20:06 948今天遇到一个奇怪的问题,代码如下: public ... -
ResourceBundle例子
2008-12-22 15:41 1492public class TestResourceBundle ... -
eclipse new class注释模板
2008-12-19 13:10 1422/** * @{#} ${file_n ... -
CountDownLatch 线程助手
2008-12-10 13:38 1191JAVA API (CountDownLatch) clas ...
相关推荐
CGLIB介绍与原理(部分节选自网络) 一、什么是CGLIB? CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理,但当要...
CGLIB,全称为Code Generation Library,是一个强大的高性能的代码生成库,它在Java世界里被广泛应用,尤其是在Spring框架中。CGLIB是基于ASM(一个底层的Java字节码操作和分析框架)来实现的,它允许开发者在运行时...
CGLIB,全称为Code Generation Library,是一个强大的高性能的代码生成库,被广泛应用于Java世界,尤其是Spring框架中。它允许程序在运行时动态地创建Java对象并扩展已有类的功能。CGLIB是通过字节码技术实现的,而...
CGlib,全称为Code Generation Library,是一个强大的Java代码生成库,广泛用于动态代理、AOP(面向切面编程)框架以及性能优化等场景。它通过字节码技术为类创建子类,从而实现对目标类的功能增强。在Java中,由于...
CGLib,全称为Code Generation Library,是一个强大的高性能的代码生成库,它在Java世界中被广泛应用,尤其是在动态代理和AOP(面向切面编程)领域。这个库的主要功能是能够在运行时动态创建类或者增强已有类的功能...
CGLib,全称为Code Generation Library,是一个强大的Java代码生成库,广泛用于动态代理、AOP(面向切面编程)等领域。它允许开发者在运行时创建和扩展Java类,而无需直接编写新的源代码或编译步骤。这个压缩包...
【CGLib:强大的Java代码生成库】 CGLib(Code Generation Library)是一个强大的、高性能的代码生成库,它在运行期扩展Java类与实现Java接口。这个库最初是为EJB的透明代理而设计的,但后来发展成为了一个广泛的...
赠送jar包:cglib-3.1.jar; 赠送原API文档:cglib-3.1-javadoc.jar; 赠送源代码:cglib-3.1-sources.jar; 赠送Maven依赖信息文件:cglib-3.1.pom; 包含翻译后的API文档:cglib-3.1-javadoc-API文档-中文(简体)版...
Cglib是一个强大的、高性能的代码生成库,它在Java世界中被广泛应用,尤其是在动态代理和AOP(面向切面编程)领域。Cglib3.3.0是该库的最新版本,提供了两个jar包:`cglib-3.3.0.jar`和`cglib-nodep-3.3.0.jar`。 1...
开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4...
cglib包及依赖汉cglib3.1和asm4.2,主要作用是用户代理,代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。...
CGLIB,全称为Code Generation Library,是一个非常强大的Java字节码操纵和动态代理框架。它在Java编程中扮演着重要角色,特别是在AOP(面向切面编程)和ORM(对象关系映射)框架中,如Spring AOP和Hibernate。这个...
CGLib,全称为Code Generation Library,是一个强大的Java字节码操作库,广泛应用于动态代理、AOP(面向切面编程)以及性能优化等领域。它允许开发者在运行时创建和增强新的类或对象,而无需编写任何Java源代码。...
其中,`cglib.jar` 和 `asm.jar` 是实现Java动态代理的两个关键库,它们在许多框架和库中都有广泛的应用,比如Spring AOP和Hibernate。 `cglib.jar` 是一个强大的代码生成库,全称为Code Generation Library。它...
CGLib,全称为Code Generation Library,是一个强大的高性能的代码生成库,它在Java世界中被广泛应用,尤其是在动态代理和AOP(面向切面编程)领域。CGLIB是由Evan Schoolnik开发并维护的,它最初是作为Jakarta OGNL...
Cglib代理,也叫作子类代理,它是在内存中构建一个子类对象从而实现对目标对象功能的扩展. JDK的动态代理有一个限制,就是使用动态代理的对象必须实现一个或多个接口,如果想代理没有实现接口的类,就可以使用Cglib实现....
Cglib是一个强大的Java代码生成库,它在运行时动态创建子类,为现有类提供扩展功能。这个库被广泛用于实现AOP(面向切面编程)中的代理机制,特别是当无法通过接口代理时,例如Java标准库中的类。Cglib是Eclipse的...
CGlib,全称为Code Generation Library,是一个强大的、高性能的代码生成库,主要为Java语言设计。它被广泛应用于许多框架中,例如Spring AOP(面向切面编程)和Hibernate ORM(对象关系映射)。CGlib允许开发者在...
**CGLIB2.2 Jar包详解** CGLIB(Code Generation Library)是一个强大的高性能的代码生成库,它被广泛应用于Java世界中的动态代理和字节码操作。CGLIB是基于ASM库来实现的,ASM是一个底层的Java字节码操控和分析...