Home >Java >javaTutorial >The difference between JDK dynamic proxy and CGLIB

The difference between JDK dynamic proxy and CGLIB

angryTom
angryTomOriginal
2020-02-17 16:34:344298browse

The difference between JDK dynamic proxy and CGLIB

The difference between JDK dynamic proxy and CGLIB

1. JDK dynamic proxy:

Use interception The interceptor (the interceptor must implement InvocationHanlder) plus the reflection mechanism generates an anonymous class that implements the proxy interface.

Call InvokeHandler before calling the specific method.

(Related video tutorial sharing: java video tutorial)

2. CGLiB dynamic proxy:

Use ASM open source package , load the class file of the proxy object class, and process it by modifying its bytecode to generate a subclass.

3. What is the difference between JDK dynamic proxy and CGLIB bytecode generation?

1. JDK dynamic proxy can only generate proxies for classes that implement interfaces, but not for classes.

2. CGLIB implements proxies for classes. It mainly generates a subclass for the specified class, overrides the methods in it, and overrides the methods to achieve enhancement. However, because inheritance is used, the class or method It is best not to declare it final. Final classes or methods cannot be inherited.

For more Java-related tutorials, please visit the PHP Chinese website, java tutorial column!

The above is the detailed content of The difference between JDK dynamic proxy and CGLIB. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn