Встречается на собеседованиях • сегодня
Какая ошибка произойдет при указании всех опций в 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() {}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы