CGlib方式的aop

該情況適用於被代理對象沒有接口的情況

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;
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章