
иллюстрировать
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.