иллюстрировать
1. Агент Cglib можно назвать агентом подкласса, который создает в памяти объекты подкласса для расширения функциональности целевого объекта.
И статическим прокси, и прокси JDK требуется объект для реализации интерфейса. Иногда прокси-объект представляет собой всего лишь один объект, и в это время можно использовать прокси-сервер Cglib.
2. Cglib генерирует прокси-класс через Enhancer и реализует метод перехвата, реализуя интерфейс MethodInterceptor.
К методу можно добавить методы расширения, а исходный метод можно вызвать с помощью отражающего метода или унаследованного класса MethodProxy.
Пример
публичный класс TVProxyCglib реализует MethodInterceptor { //Создаем прокси-объект для целевого объекта public Object getProxyInstance(Class c){ //1. Класс инструмента Enhancer Enhancer = new Enhancer(); //2.Установим родительский класс Enhancer.setSuperclass(c); //3.Установим функцию обратного вызова Enhancer.setCallback(this); //4. Создаем подкласс (прокси-объект) вернуть Enhancer.create(); } @Override перехват общедоступного объекта (Object o, метод метода, объекты Object[], метод MethodProxyProxy) бросает Throwable { System.out.println("Улучшение TVProxyFactory...."); Объект объект = методПрокси.invokeSuper(о, объекты); вернуть объект; } }
Выше описано использование агента Cglib в Java, надеюсь, это будет полезно всем.
Еще руководство по изучению Java: учебник по Java
Операционная среда этого руководства: система Windows 7, версия Java 10, компьютер DELL G3.