org.springframework.util.ClassUtils.isCglibProxyClass()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(8.4k)|赞(0)|评价(0)|浏览(167)

本文整理了Java中org.springframework.util.ClassUtils.isCglibProxyClass()方法的一些代码示例,展示了ClassUtils.isCglibProxyClass()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ClassUtils.isCglibProxyClass()方法的具体详情如下:
包路径:org.springframework.util.ClassUtils
类名称:ClassUtils
方法名:isCglibProxyClass

ClassUtils.isCglibProxyClass介绍

[英]Check whether the specified class is a CGLIB-generated class.
[中]检查指定的类是否为CGLIB生成的类。

代码示例

代码示例来源:origin: spring-projects/spring-framework

/**
 * Check whether the given object is a CGLIB proxy.
 * @param object the object to check
 * @see #isCglibProxyClass(Class)
 * @see org.springframework.aop.support.AopUtils#isCglibProxy(Object)
 */
public static boolean isCglibProxy(Object object) {
  return isCglibProxyClass(object.getClass());
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Check whether the given object is a JDK dynamic proxy or a CGLIB proxy.
 * <p>This method additionally checks if the given object is an instance
 * of {@link SpringProxy}.
 * @param object the object to check
 * @see #isJdkDynamicProxy
 * @see #isCglibProxy
 */
public static boolean isAopProxy(@Nullable Object object) {
  return (object instanceof SpringProxy &&
      (Proxy.isProxyClass(object.getClass()) || ClassUtils.isCglibProxyClass(object.getClass())));
}

代码示例来源:origin: org.springframework/spring-core

/**
 * Check whether the given object is a CGLIB proxy.
 * @param object the object to check
 * @see #isCglibProxyClass(Class)
 * @see org.springframework.aop.support.AopUtils#isCglibProxy(Object)
 */
public static boolean isCglibProxy(Object object) {
  return isCglibProxyClass(object.getClass());
}

代码示例来源:origin: org.springframework.boot/spring-boot

public Method findFactoryMethod(String beanName) {
  if (!this.beansFactoryMetadata.containsKey(beanName)) {
    return null;
  }
  AtomicReference<Method> found = new AtomicReference<>(null);
  FactoryMetadata metadata = this.beansFactoryMetadata.get(beanName);
  Class<?> factoryType = this.beanFactory.getType(metadata.getBean());
  String factoryMethod = metadata.getMethod();
  if (ClassUtils.isCglibProxyClass(factoryType)) {
    factoryType = factoryType.getSuperclass();
  }
  ReflectionUtils.doWithMethods(factoryType, (method) -> {
    if (method.getName().equals(factoryMethod)) {
      found.compareAndSet(null, method);
    }
  });
  return found.get();
}

代码示例来源:origin: spring-projects/spring-framework

if (ClassUtils.isCglibProxyClass(rootClass)) {
  proxySuperClass = rootClass.getSuperclass();
  Class<?>[] additionalInterfaces = rootClass.getInterfaces();

代码示例来源:origin: spring-projects/spring-framework

/**
 * @since 3.2.8 and 4.0.2
 * @see <a href="https://jira.spring.io/browse/SPR-10785">SPR-10785</a> and <a
 *      href="https://jira.spring.io/browse/SPR-11420">SPR-11420</a>
 */
@Test
public void methodInjectedBeanMustBeOfSameEnhancedCglibSubclassTypeAcrossBeanFactories() {
  Class<?> firstClass = null;
  for (int i = 0; i < 10; i++) {
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
    new XmlBeanDefinitionReader(bf).loadBeanDefinitions(OVERRIDES_CONTEXT);
    final Class<?> currentClass = bf.getBean("overrideOneMethod").getClass();
    assertTrue("Method injected bean class [" + currentClass + "] must be a CGLIB enhanced subclass.",
      ClassUtils.isCglibProxyClass(currentClass));
    if (firstClass == null) {
      firstClass = currentClass;
    }
    else {
      assertEquals(firstClass, currentClass);
    }
  }
}

代码示例来源:origin: camunda/camunda-bpm-platform

/**
 * Check whether the given object is a CGLIB proxy.
 * @param object the object to check
 * @see org.springframework.aop.support.AopUtils#isCglibProxy(Object)
 */
public static boolean isCglibProxy(Object object) {
  return ClassUtils.isCglibProxyClass(object.getClass());
}

代码示例来源:origin: spring-projects/spring-integration

private static Class<?> getTargetClass(Object targetObject) {
  Class<?> targetClass = targetObject.getClass();
  if (AopUtils.isAopProxy(targetObject)) {
    targetClass = AopUtils.getTargetClass(targetObject);
  }
  else if (ClassUtils.isCglibProxyClass(targetClass)) {
    Class<?> superClass = targetObject.getClass().getSuperclass();
    if (!Object.class.equals(superClass)) {
      targetClass = superClass;
    }
  }
  return targetClass;
}

代码示例来源:origin: spring-projects/spring-integration

private Class<?> getTargetClass(Object targetObject) {
  Class<?> targetClass = targetObject.getClass();
  if (AopUtils.isAopProxy(targetObject)) {
    targetClass = AopUtils.getTargetClass(targetObject);
    if (targetClass == targetObject.getClass()) {
      try {
        // Maybe a proxy with no target - e.g. gateway
        Class<?>[] interfaces = ((Advised) targetObject).getProxiedInterfaces();
        if (interfaces.length == 1) {
          targetClass = interfaces[0];
        }
      }
      catch (Exception e) {
        logger.debug("Exception trying to extract interface", e);
      }
    }
  }
  else if (org.springframework.util.ClassUtils.isCglibProxyClass(targetClass)
      || targetClass.getSimpleName().contains("$MockitoMock$")) {
    Class<?> superClass = targetObject.getClass().getSuperclass();
    if (!Object.class.equals(superClass)) {
      targetClass = superClass;
    }
  }
  return targetClass;
}

代码示例来源:origin: apache/servicemix-bundles

/**
 * Check whether the given object is a CGLIB proxy.
 * @param object the object to check
 * @see #isCglibProxyClass(Class)
 * @see org.springframework.aop.support.AopUtils#isCglibProxy(Object)
 */
public static boolean isCglibProxy(Object object) {
  return isCglibProxyClass(object.getClass());
}

代码示例来源:origin: camunda/camunda-bpm-platform

if (fbDef instanceof AbstractBeanDefinition) {
  Class<?> fbClass = ((AbstractBeanDefinition)fbDef).getBeanClass();
  if (ClassUtils.isCglibProxyClass(fbClass)) {

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core

/**
 * Check whether the given object is a CGLIB proxy.
 * @param object the object to check
 * @see #isCglibProxyClass(Class)
 * @see org.springframework.aop.support.AopUtils#isCglibProxy(Object)
 */
public static boolean isCglibProxy(Object object) {
  return isCglibProxyClass(object.getClass());
}

代码示例来源:origin: apache/servicemix-bundles

/**
 * Check whether the given object is a JDK dynamic proxy or a CGLIB proxy.
 * <p>This method additionally checks if the given object is an instance
 * of {@link SpringProxy}.
 * @param object the object to check
 * @see #isJdkDynamicProxy
 * @see #isCglibProxy
 */
public static boolean isAopProxy(Object object) {
  return (object instanceof SpringProxy &&
      (Proxy.isProxyClass(object.getClass()) || ClassUtils.isCglibProxyClass(object.getClass())));
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop

/**
 * Check whether the given object is a JDK dynamic proxy or a CGLIB proxy.
 * <p>This method additionally checks if the given object is an instance
 * of {@link SpringProxy}.
 * @param object the object to check
 * @see #isJdkDynamicProxy
 * @see #isCglibProxy
 */
public static boolean isAopProxy(@Nullable Object object) {
  return (object instanceof SpringProxy &&
      (Proxy.isProxyClass(object.getClass()) || ClassUtils.isCglibProxyClass(object.getClass())));
}

代码示例来源:origin: venus-boot/saluki

private static boolean isAopProxy(Object object) {
 return Proxy.isProxyClass(object.getClass()) || ClassUtils.isCglibProxyClass(object.getClass());
}

代码示例来源:origin: apache/cxf

protected Class<?> getRealClassFromClassInternal(Class<?> cls) {
  if (ClassUtils.isCglibProxyClass(cls)) {
    return getRealClassFromClassInternal(cls.getSuperclass());
  }
  return cls;
}
protected Object getRealObjectInternal(Object o) {

代码示例来源:origin: org.apache.cxf/cxf-core

protected Class<?> getRealClassFromClassInternal(Class<?> cls) {
  if (ClassUtils.isCglibProxyClass(cls)) {
    return getRealClassFromClassInternal(cls.getSuperclass());
  }
  return cls;
}
protected Object getRealObjectInternal(Object o) {

代码示例来源:origin: org.javasimon/javasimon-spring

@Override
public boolean matches(Method method, Class targetClass) {
  return !ClassUtils.isCglibProxyClass(targetClass) && isMonitoredAnnotationOnClassOrMethod(method, targetClass);
}

代码示例来源:origin: ff4j/ff4j

/** {@inheritDoc} */
@Override
protected Object[] getAdvicesAndAdvisorsForBean(Class<?> beanClass, String beanName, TargetSource targetSource) {
  // Do not used any AOP here as still working with classes and not objects
  if (!beanClass.isInterface()) {
    Class<?>[] interfaces;
    if (ClassUtils.isCglibProxyClass(beanClass)) {
      interfaces = beanClass.getSuperclass().getInterfaces();
    } else {
      interfaces = beanClass.getInterfaces();
    }
    if (interfaces != null) {
      for (Class<?> currentInterface: interfaces) {
        Object[] r = scanInterface(currentInterface);
        if (r != null) {
          return r;
        }
      }
    }
  }
  return DO_NOT_PROXY;
}

代码示例来源:origin: org.springframework.integration/spring-integration-core

private static Class<?> getTargetClass(Object targetObject) {
  Class<?> targetClass = targetObject.getClass();
  if (AopUtils.isAopProxy(targetObject)) {
    targetClass = AopUtils.getTargetClass(targetObject);
  }
  else if (ClassUtils.isCglibProxyClass(targetClass)) {
    Class<?> superClass = targetObject.getClass().getSuperclass();
    if (!Object.class.equals(superClass)) {
      targetClass = superClass;
    }
  }
  return targetClass;
}

相关文章

微信公众号

最新文章

更多