Можешь ли ты назвать и объяснить типы Proxy, используемые в Spring Framework?

В Spring Framework используются два основных типа прокси для реализации аспектно-ориентированного программирования (AOP) и других механизмов:

Короткий ответ

Что ответить на собеседовании

В Spring Framework используются два основных типа прокси для реализации аспектно-ориентированного программирования (AOP) и других механизмов:

Подробный разбор

Ответ с пояснениями

В Spring Framework используются два основных типа прокси для реализации аспектно-ориентированного программирования (AOP) и других механизмов:

  1. JDK Dynamic Proxy

    • Создаёт прокси на основе интерфейсов.
    • Работает только с объектами, которые реализуют хотя бы один интерфейс.
    • Прокси реализует те же интерфейсы, что и целевой объект.
  2. CGLIB Proxy

    • Создаёт прокси путём наследования от целевого класса.
    • Используется, если у объекта нет интерфейсов или явно указано использовать класс-прокси.
    • Позволяет проксировать классы без интерфейсов.

Spring автоматически выбирает тип прокси: если есть интерфейсы — JDK Proxy, иначе CGLIB.

Пример конфигурации:

@Service
public class MyService {
    public void doWork() {
        // ...
    }
}

При использовании AOP Spring создаст прокси для MyService, выбирая подходящий тип в зависимости от наличия интерфейсов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее