Встречается на собеседованиях • сегодня

Что такое CGLib

CGLib (Code Generation Library) — это библиотека для генерации динамических прокси-классов во время выполнения, используемая в Java для работы с классами, а не интерфейсами (в отличие от стандартного Proxy из JDK). Она применяется в фреймворках, таких как Spring, для AOP, транзакций и других задач.

Особенности:

  • Работает через наследование: создает подкласс целевого класса.
  • Не требует интерфейсов.
  • Может перехватывать вызовы методов, даже final (но сам класс не должен быть final).

Пример:

java
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(TargetClass.class);
enhancer.setCallback((MethodInterceptor) (obj, method, args, proxy) -> {
    System.out.println("Before method: " + method.getName());
    Object result = proxy.invokeSuper(obj, args);
    System.out.println("After method: " + method.getName());
    return result;
});
TargetClass proxy = (TargetClass) enhancer.create();
proxy.someMethod(); // Будет перехвачен
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы