spring aop 动态代理模拟

CGLIB 动态代理

public class HouserHost {

public void rentHouse() {
System.out.println("出租房屋了");
}

}

public class middle implements MethodInterceptor {
@Override
public Object intercept(Object object, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
System.out.println("出租房屋");
Object invokeSuper = methodProxy.invokeSuper(object, args);
System.out.println("装修房屋");
return invokeSuper;
}


}

public static void main(String[] args) {
middle m = new middle();
Enhancer e = new Enhancer();
e.setSuperclass(HouserHost.class);
e.setCallback(m);
HouserHost create = (HouserHost) e.create();
create.rentHouse();

}

JDBC动态代理

public interface Uservice {
void marry();

}

public class User implements Uservice {
@Override
public void marry() {
System.out.println("小明要结婚了");
}

}

 public class Jckdynproxy implements InvocationHandler {
private Object realObj;
public Jckdynproxy(Object realObj) {
super();
this.realObj = realObj;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("布置婚房");
Object invoke = method.invoke(realObj, args);
System.out.println("收取佣金");
return invoke;
}
}

public class Testjdk {


public static void main(String[] args) {
User user = new User();
Jckdynproxy jdkProxy = new Jckdynproxy(user);
Uservice proxyInstance = (Uservice) Proxy.newProxyInstance(user.getClass().getClassLoader(), user.getClass().getInterfaces(), jdkProxy);
proxyInstance.marry();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值