Example usage for org.springframework.aop.framework ProxyFactory removeAdvisor

List of usage examples for org.springframework.aop.framework ProxyFactory removeAdvisor

Introduction

In this page you can find the example usage for org.springframework.aop.framework ProxyFactory removeAdvisor.

Prototype

@Override
    public boolean removeAdvisor(Advisor advisor) 

Source Link

Usage

From source file:cn.guoyukun.spring.utils.AopProxyUtils.java

private static void removeAdvisor(Object proxy, Class<? extends Advice> adviceClass) {
    if (!AopUtils.isAopProxy(proxy)) {
        return;//from   w w w  .  j a v  a2  s .  c  om
    }
    ProxyFactory proxyFactory = null;
    if (AopUtils.isJdkDynamicProxy(proxy)) {
        proxyFactory = findJdkDynamicProxyFactory(proxy);
    }
    if (AopUtils.isCglibProxy(proxy)) {
        proxyFactory = findCglibProxyFactory(proxy);
    }

    Advisor[] advisors = proxyFactory.getAdvisors();

    if (advisors == null || advisors.length == 0) {
        return;
    }

    for (Advisor advisor : advisors) {
        if (adviceClass.isAssignableFrom(advisor.getAdvice().getClass())) {
            proxyFactory.removeAdvisor(advisor);
            break;
        }
    }
}