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

Какие знаешь методы проксирования в Spring

В Spring есть несколько способов проксирования:

  1. JDK Dynamic Proxy - стандартный механизм Java, работает только с интерфейсами. Spring использует его по умолчанию, если класс реализует интерфейс.
java
public interface Service {
    void doSomething();
}

@Service
public class ServiceImpl implements Service {
    @Override
    public void doSomething() {
        // реализация
    }
}
  1. CGLIB Proxy - используется, когда класс не реализует интерфейсы. Создает подкласс целевого класса.
java
@Service
public class ConcreteService {
    public void doSomething() {
        // реализация
    }
}
  1. AspectJ - более мощный вариант, работает на уровне байт-кода, поддерживает все виды проксирования, включая private методы. Требует дополнительной настройки.

Для выбора типа прокси в Spring можно использовать аннотацию @EnableAspectJAutoProxy с параметром proxyTargetClass:

java
@Configuration
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class AppConfig {
}

Основные отличия: JDK Proxy быстрее создается, но медленнее работает. CGLIB медленнее создается, но работает быстрее. AspectJ самый мощный, но требует дополнительных зависимостей.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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