应用介绍
此项目是Java面试真题与源码解析。
package com.lagou.interview;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
import java.lang.reflect.Method;
/**
* CGLib 动态代理示例
*/
public class CGLibExample {
static class Car {
public void running() {
System.out.println("The car is running.");
}
}
/**
* CGLib 代理类
*/
static class CGLibProxy implements MethodInterceptor {
private Object target; // 代理对象
public Object getInstance(Object target) {
this.target = target;
Enhancer enhancer = new Enhancer();
// 设置父类为实例类
enhancer.setSuperclass(this.target.getClass());
// 回调方法
enhancer.setCallback(this);
// 创建代理对象
return enhancer.create();
}
@Override
public Object intercept(Object o, Method method,
Object[] objects, MethodProxy methodProxy) throws Throwable {
System.out.println("方法调用前业务处理.");
Object result = methodProxy.invokeSuper(o, objects); // 执行方法调用
return result;
}
}
// 执行 CGLib 的方法调用
public static void main(String[] args) {
// 创建 CGLib 代理类
CGLibProxy proxy = new CGLibProxy();
// 初始化代理对象
Car car = (Car) proxy.getInstance(new Car());
// 执行方法
car.running();
}
}
。。。。。。。想了解详情请下载附件。
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: [email protected] 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » Java面试真题与源码解析
文件列表(部分)
名称 | 大小 | 修改日期 |
---|---|---|
interview.iml | 0.83 KB | 2020-07-13 |
pom.xml | 1.15 KB | 2020-07-13 |
AlgorithmExample.java | 1.37 KB | 2020-07-13 |
CGLibExample.java | 0.67 KB | 2020-07-13 |
CloneExample.java | 0.92 KB | 2020-07-13 |
CacheGlobal.java | 0.21 KB | 2020-07-13 |
CacheUtils.java | 0.75 KB | 2020-07-13 |
ExpireThread.java | 0.57 KB | 2020-07-13 |
MyCache.java | 0.35 KB | 2020-07-13 |
MyCacheTest.java | 0.27 KB | 2020-07-13 |
CustomDelayQueue.java | 0.90 KB | 2020-07-13 |
CustomQueue.java | 0.38 KB | 2020-07-13 |
FifthExample.java | 0.71 KB | 2020-07-13 |
FirstExample.java | 0.78 KB | 2020-07-13 |
FourthExample.java | 0.73 KB | 2020-07-13 |
SecondExample.java | 0.68 KB | 2020-07-13 |
ThirdExample.java | 0.97 KB | 2020-07-13 |
EhCacheExample.java | 0.51 KB | 2020-07-13 |
Person.java | 0.12 KB | 2020-07-13 |
LockExample.java | 0.56 KB | 2020-07-13 |
VolatileExample.java | 0.95 KB | 2020-07-13 |
GuavaExample.java | 1.02 KB | 2020-07-13 |
IdempotentExample.java | 0.23 KB | 2020-07-13 |
GCExample.java | 0.30 KB | 2020-07-13 |
LockExample.java | 0.27 KB | 2020-07-13 |
LombokExample.java | 0.19 KB | 2020-07-13 |
ProxyExample.java | 0.75 KB | 2020-07-13 |
Singleton.java | 0.67 KB | 2020-07-13 |
ThreadExample.java | 0.60 KB | 2020-07-13 |
ThreadPoolExample.java | 1.33 KB | 2020-07-13 |
发表评论 取消回复