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

К чему приводит аспект, который запрашивает Pointcut на *.*

Такое указание Pointcut (*.*) приведет к сопоставлению с любым методом любого класса, включая приватные, статические и даже методы системных библиотек. Это крайне неэффективно и может вызвать:

  1. Серьезные проблемы производительности – AOP-прокси будет создаваться для всех методов, что замедлит приложение.
  2. Неожиданное поведение – Advice может срабатывать в непредусмотренных местах (например, внутри JDK или Spring).
  3. Сложности отладки – из-за чрезмерного перехвата вызовов.

Пример (плохая практика):

java
@Aspect
public class BadAspect {
    @Before("*.*") // Опасный Pointcut!
    public void logAll() {
        System.out.println("Advice triggered!");
    }
}

Как исправить:
Всегда ограничивайте Pointcut конкретными пакетами/классами, например:
@Before("execution(* com.example.service.*.*(..))")

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

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

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

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