// JDK方式:PersonService为接口,PersonServiceBean为实现类,
public class JDKProxyFactory implements InvocationHandler {
private Object targetObject;
public Object createProxyIntance(Object targetObject)
{
this.targetObject=targetObject;
return Proxy.newProxyInstance(this.targetObject.getClass().getClassLoader(),
this.targetObject.getClass().getInterfaces(), this);
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
PersonServiceBean person=(PersonServiceBean)this.targetObject;
Object result=null;
if(person.getUser()!=null)
{
result = method.invoke(targetObject, args);
}
return result;
}
}
//使用CGlib包实现:PersonServiceBean为实现类, 而没有PersonService接口,
public class CGlibProxyFactory implements MethodInterceptor{
private Object targetObject;
public Object createProxyInstance(Object targetObject)
{
this.targetObject=targetObject;
Enhancer enhancer=new Enhancer();
enhancer.setSuperclass(this.targetObject.getClass());//设置目标类的子类,该子类会覆盖所有父类中的非final方法
enhancer.setCallback(this);//设置回调
return enhancer.create();
}
public Object intercept(Object proxy, Method method, Object[] args,
MethodProxy methodProxy) throws Throwable {
PersonServiceBean person=(PersonServiceBean)this.targetObject;
Object result=null;
if(person.getUser()!=null)
{
result = methodProxy.invoke(targetObject, args);
}
return null;
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有