CGlib方式的aop

来源:互联网 发布:淘宝网logo 编辑:程序博客网 时间:2024/05/22 12:48

该情况适用于被代理对象没有接口的情况

public class CGlibProxyFactory implements MethodInterceptor {

    private Object targetObject;
   
   
    //创建代理对象
    public Object createProxyIntance(Object targetObject) {
        this.targetObject = targetObject;
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(this.targetObject.getClass());
        enhancer.setCallback(this);
        return enhancer.create();
    }
   
   
    public Object intercept(Object arg0, Method arg1, Object[] args,
            MethodProxy methodProxy) throws Throwable {
        PersonServiceBean psb = (PersonServiceBean)this.targetObject;
        Object result = null;
        if(psb.getUser() != null) {
            result = methodProxy.invoke(targetObject, args);
        }
        return null;
    }

}

原创粉丝点击