- 浏览: 153303 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (130)
- Database (5)
- JavaSE (23)
- JavaScript (11)
- Struts2 (15)
- Hibernate (11)
- Spring (16)
- Linux (4)
- Jquery (3)
- Tools (12)
- Jsp (7)
- 杂谈 (9)
- WEB Project (10)
- WebService (16)
- maven (2)
- android (1)
- memcache (2)
- 网络通信 (4)
- solr (1)
- cxf (7)
- powerdesigner (1)
- jxls (1)
- springmvc (1)
- nosql (1)
- node.js (0)
- thrift (0)
- REST (1)
- tag (1)
最新评论
cglib is a powerful, high performance and quality Code Generation
Library, It is used to extend JAVA classes and implements interfaces at
runtime.
cglib是Code Generation Library的缩写。
cglib依赖于ASM库。
Hibernate主要是利用cglib生成pojo的子类并override get方法来实现lazy loading机制,Spring则是利用cglib来实现动态代理。
而JDK的动态代理机制要求有接口才行,这样就强制我们的pojo实现某个接口。
这里还是提供一个cglib的入门级的示例:
MyClass.java:
Java代码
public class MyClass { public void print() { System.out.println("I'm in MyClass.print!"); } }
Main.java:
Java代码
import java.lang.reflect.Method; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; public class Main { public static void main(String[] args) { Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(MyClass.class); enhancer.setCallback(new MethodInterceptorImpl()); MyClass my = (MyClass) enhancer.create(); my.print(); } private static class MethodInterceptorImpl implements MethodInterceptor { public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { // log something System.out.println(method + " intercepted!"); proxy.invokeSuper(obj, args); return null; } } }
打印结果为:
Java代码
public void MyClass.print() intercepted!
I'm in MyClass.print!
这个示例就基本上实现了日志AOP的功能,很简单吧。
发表评论
-
Java编程中“为了性能”尽量要做到的一些地方
2012-07-04 14:44 6251.慎用synchronized,尽量减小synchroniz ... -
利用Session防止表单重复提交
2011-12-13 18:36 11491 由于服务器缓慢或者 ... -
java format(MessageFormat)
2011-12-06 17:20 739java.text.Format |__java. ... -
java 主线程等待子线程执行完成后再执行
2011-12-06 09:47 3153原文:http://www.jiacheo.org/blog ... -
Ognl/MVEL/Aviator/JSEL 四种表达式引擎执行效率对比
2011-11-24 10:33 2936http://jindw.iteye.com/blog/732 ... -
java模拟javascript的encodeURI方法
2011-10-27 15:52 2892import java.io.UnsupportedEncod ... -
3种下载文件程序的思考,为何使用NIO进行异步网络通讯
2011-10-08 14:37 655原文链接:http://suhuanzheng7784877 ... -
【温故而知新】log4j输出多个自定义日志文件,动态配置路径
2011-08-10 15:38 8371. log4j输出多个自定义日志文件 log ... -
java7 新特性
2011-08-10 10:48 692原文链接:http://www.iteye ... -
Java版短网址(ShortUrl)的算法
2011-06-09 10:42 2725最近,我的项目中需要用到短网址(ShortUrl)的算法,于是 ... -
设计模式学习——适配器模式
2011-06-07 10:30 726某个类拥有我们所 ... -
用spring做一个javaMail功能的例子
2011-05-16 09:37 1193前言:项目中要做一个发送邮件的功能,在网上搜了一些代码,说的都 ... -
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
2010-10-14 18:38 836今天看到一篇好文,觉得还不错,褪去的记忆被唤醒:http:/ ... -
动态代理
2010-07-13 11:11 704http://www.iteye.com/topic/7103 ... -
ASCLL,Unicode 和 UTF-8
2010-05-15 13:36 14381.Ascll 算是比较早的编码,七位二进制数表示,当然在 ... -
String 详解
2010-05-12 10:29 763解析Java中的String对象的数据类型 1. 首先S ... -
判断数据的类型
2010-05-04 15:24 792// 字符类型 String if (pramets.get( ... -
关于ThreadLocal模式的体会
2010-03-18 11:00 1177本文转至::http://www.iteye.com/topi ... -
javaClassLoader类加载器详解<转>
2010-03-12 14:43 1018由于一个JDBC的基本封装 ... -
properties 文件 读写
2010-03-10 10:18 897import java.io.BufferedInputStr ...
相关推荐
java静态代理 jdk动态代理 cglib动态代理 代理原理
AOP之JDK动态代理和CGLib动态代理 ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45195383
基于MAVEN项目的CGLib动态代理原理及实现
该资源里面有Jdk动态代理,cglib动态代理,反射和拦截器(链)示例,里面也有所需要的jar包,下载下来导入eclipse即可运行,有问题请问我
代理模式详解-jdk与cglib动态代理与底层实现,spring中常用的设计模式,本案例是从源码到代理模式的实现。
jdk和cglib动态代理的例子{jar包+源码} 解压:如有问题 用快压
cglib实现动态代理,有源代码,详细的实例,逐步分析,实现动态代理。
NULL 博文链接:https://agileshell.iteye.com/blog/1857897
CGlib动态代理类jar包,一共四个jar包,模拟CGlib动态代理用得到。
JDK动态代理必须提供接口才能使用,在一些不能提供接口的环境中,只能采用其他第三方技术,比如CGLIB动态代理,这里提供CGLIB动态代理的相关jar包,供学习和测试使用。
cglib动态代理相关jar包,亲测可用cglib动态代理相关jar包,亲测可用cglib动态代理相关jar包,亲测可用
JAVA动态代理实现Demo(JDK动态代理和CGLIB动态代理)
cglib动态代理用到的两个包 cglib动态代理用到的两个包 cglib动态代理用到的两个包
* Cglib代理(子类代理) * 可以在运行期,扩展java类与实现接口,在内存中创建一个子类对象,实现代理功能 * 底层通过字节码处理框架ASM,转换字节码并生成新的类 * 被代理类都不需要实现接口 * 代理类需要实现...
cglib-nodep-2.1_3.jar、asm-2.2.3.jar、asm-commons-2.2.3.jar、asm-util-2.2.3.jar四个包
cglib动态代理资源包
静态代理、jdk动态代理、cglib动态代理
Java 动态代理详解(代理模式+静态代理+JDK动态代理+CGLIB动态代理)
JDK动态代理和Cglib动态代理实例源码
cglib动态代理技术所需要的Jar包,注意只需要一个jar就可以! cglib-nodep-2.2.2.jar 这个包里面包含了asm的引用,无需在引用!