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

Какая ошибка произойдет при указании всех опций в Pointcut аспекта при работе со Spring Boot

Указание всех опций в @Pointcut (например, execution, within, args, @annotation одновременно) может привести к IllegalArgumentException из-за конфликтующих условий. Spring AOP требует, чтобы Pointcut был однозначным и выполнимым.

Пример проблемного Pointcut:

java
@Pointcut("execution(* com.example.service.*.*(..)) && within(com.example..*) && @annotation(Loggable)")
public void problematicPointcut() {}

Проблема:

  • Слишком строгие/противоречивые условия могут не найти подходящие join points.
  • Возможна ошибка: No bean named 'aspectBean' available (если аспект не сканируется).

Решение:
Разделяй условия на отдельные Pointcut’ы и комбинируй их логически (&&, ||).

Пример корректного Pointcut:

java
@Pointcut("execution(* com.example.service.*.*(..)) && @annotation(Loggable)")
public void clearPointcut() {}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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