package cn.noexception.container.factory.utils; import cn.noexception.container.ApplicationListener; import cn.noexception.container.factory.stereotype.Cube; import java.util.Set; /** * ClassUtils * * @author 吕滔 * @Date 2021/10/23 10:13 */ public class ClassUtils { public static ClassLoader getDefaultClassLoader() { ClassLoader cl = null; try { cl = Thread.currentThread().getContextClassLoader(); } catch (Throwable ex) { // Cannot access thread context ClassLoader - falling back to system class loader... } if (cl == null) { // No thread context class loader -> use class loader of this class. cl = ClassUtils.class.getClassLoader(); } return cl; } /** * Check whether the specified class is a CGLIB-generated class. * @param clazz the class to check */ public static boolean isCglibProxyClass(Class clazz) { return (clazz != null && isCglibProxyClassName(clazz.getName())); } /** * Check whether the specified class name is a CGLIB-generated class. * @param className the class name to check */ public static boolean isCglibProxyClassName(String className) { return (className != null && className.contains("$$")); } }