Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Spring: aop, logging

Как реализовать логирование времени выполнения методов бинов?

Вопрос проверяет понимание сквозных задач и умение применять AOP для нефункциональных требований.

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

Логирование времени выполнения методов обычно реализуется через AOP.
Создаётся аспект, который оборачивает вызов метода.
Время измеряется до и после выполнения.
Бизнес-код при этом не изменяется.
Подход масштабируемый и централизованный.

Длинный ответ

Измерение времени — типичная сквозная задача.

Основная идея

Нужно перехватывать вызовы методов:

  • до начала выполнения

  • после завершения

Это удобно делать с помощью аспектов.

Использование Spring AOP

Создаётся аспект с @Around.

@Aspect
@Component
public class ExecutionTimeAspect {

    @Around("@annotation(LogExecutionTime)")
    public Object logTime(ProceedingJoinPoint pjp) throws Throwable {
        long start = System.currentTimeMillis();
        try {
            return pjp.proceed();
        } finally {
            long end = System.currentTimeMillis();
            // логирование времени выполнения
        }
    }
}

Где применять

  • сервисные методы

  • интеграции

  • критичные по производительности участки

Почему не вручную

Ручное логирование:

  • засоряет код

  • сложно поддерживать

  • легко забыть

Вывод

AOP — оптимальный способ логирования времени выполнения без вмешательства в бизнес-логику.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Spring

    Spring

Ключевые слова

#aop

#logging

Подпишись на Java Developer в телеграм