org.springframework.util.ClassUtils#isCglibProxyClass ( )源码实例Demo

下面列出了org.springframework.util.ClassUtils#isCglibProxyClass ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

private void handler(final ServiceBean serviceBean) {
    Class<?> clazz = serviceBean.getRef().getClass();
    if (ClassUtils.isCglibProxyClass(clazz)) {
        String superClassName = clazz.getGenericSuperclass().getTypeName();
        try {
            clazz = Class.forName(superClassName);
        } catch (ClassNotFoundException e) {
            log.error(String.format("class not found: %s", superClassName));
            return;
        }
    }
    final Method[] methods = ReflectionUtils.getUniqueDeclaredMethods(clazz);
    for (Method method : methods) {
        SoulDubboClient soulDubboClient = method.getAnnotation(SoulDubboClient.class);
        if (Objects.nonNull(soulDubboClient)) {
            post(buildJsonParams(serviceBean, soulDubboClient, method));
        }
    }
}
 
private void handler(final ServiceBean serviceBean) {
    Class<?> clazz = serviceBean.getRef().getClass();
    if (ClassUtils.isCglibProxyClass(clazz)) {
        String superClassName = clazz.getGenericSuperclass().getTypeName();
        try {
            clazz = Class.forName(superClassName);
        } catch (ClassNotFoundException e) {
            log.error(String.format("class not found: %s", superClassName));
            return;
        }
    }
    final Method[] methods = ReflectionUtils.getUniqueDeclaredMethods(clazz);
    for (Method method : methods) {
        SoulDubboClient soulDubboClient = method.getAnnotation(SoulDubboClient.class);
        if (Objects.nonNull(soulDubboClient)) {
            post(buildJsonParams(serviceBean, soulDubboClient, method));
        }
    }
}
 
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();
}
 
源代码4 项目: qconfig   文件: QConfigAnnotationProcessor.java
private Class<?> getRealClass(Object bean) {
    Class<?> clazz = bean.getClass();
    while (ClassUtils.isCglibProxyClass(clazz)) {
        clazz = clazz.getSuperclass();
    }
    return clazz;
}
 
源代码5 项目: onetwo   文件: SpringUtils.java
public static Class<?> getTargetClass(Object candidate) {
	Class<?> targetClass = AopUtils.getTargetClass(candidate);
	if(ClassUtils.isCglibProxyClass(targetClass)){
		targetClass = candidate.getClass().getSuperclass();
	}
	return targetClass;
}
 
源代码6 项目: cxf   文件: SpringClassUnwrapper.java
@Override
public Class<?> getRealClassFromClass(Class<?> cls) {
    if (ClassUtils.isCglibProxyClass(cls)) {
        final Class<?> superclass = cls.getSuperclass();
        // Lambda's generated class names also contain $$ which makes them trigger CGLIB
        // proxy path. Adding more checks to handle this particular case.
        if (superclass != null && (superclass != Object.class || wasCglibEnhanced(cls))) {
            return getRealClassFromClass(superclass);
        }
    }
    return cls;
}
 
源代码7 项目: saluki   文件: GrpcAop.java
private static boolean isAopProxy(Object object) {
  return Proxy.isProxyClass(object.getClass()) || ClassUtils.isCglibProxyClass(object.getClass());
}
 
源代码8 项目: javasimon   文件: MonitoredMeasuringPointcut.java
@Override
public boolean matches(Method method, Class targetClass) {
	return !ClassUtils.isCglibProxyClass(targetClass) && isMonitoredAnnotationOnClassOrMethod(method, targetClass);
}
 
源代码9 项目: java-technology-stack   文件: AopUtils.java
/**
 * 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())));
}
 
源代码10 项目: lams   文件: AopUtils.java
/**
 * 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())));
}
 
源代码11 项目: spring4-understanding   文件: AopUtils.java
/**
 * 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())));
}