How to know original class name if wrapped into proxy by Spring?

Spring provides a utility for this. http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/ClassUtils.html#getUserClass-java.lang.Class- public static Class<?> getUserClass(Class<?> clazz) “Return the user-defined class for the given class: usually simply the given class, but the original class in case of a CGLIB-generated subclass.”

how to retransform a class at runtime

Short Answer Don’t iterate through all the loaded classes from Instrumentation. Instead, just examine the class name passed in to the transformer and if it matches your target class, then transform it. Otherwise, simply return the passed classfileBuffer unmodified. Make the set up calls outside the transformer, (i.e. in your case, do the following from … Read more

Dynamic Java Bytecode Manipulation Framework Comparison

Analysis of bytecode libraries As I can tell from the answers you got here and ones in the questions that you have looked at, these answers do not formally address the question in the explicit manner you have stated. You asked for a comparison, meanwhile these answers have vaguely stated what one might want based … Read more

What is the difference between JDK dynamic proxy and CGLib?

JDK Dynamic proxy can only proxy by interface (so your target class needs to implement an interface, which is then also implemented by the proxy class). CGLIB (and javassist) can create a proxy by subclassing. In this scenario the proxy becomes a subclass of the target class. No need for interfaces. So Java Dynamic proxies … Read more