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

Как происходит инструментация в Spring

В Spring инструментация (например, для мониторинга или трейсинга) обычно реализуется через AOP (Aspect-Oriented Programming) или интеграцию с библиотеками, такими как Micrometer, Spring Cloud Sleuth.

Основные подходы:

  1. Аннотации: @Timed, @Counted (Micrometer) или кастомные аннотации с AOP.
  2. AOP: Создание аспектов для логирования, замера времени выполнения методов.
  3. Интеграция: Spring Actuator + Micrometer для метрик, Sleuth для трейсов.

Пример с AOP:

java
@Aspect
@Component
public class MonitoringAspect {
    @Around("@annotation(com.example.Monitored)")
    public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {
        long start = System.currentTimeMillis();
        Object proceed = joinPoint.proceed();
        long duration = System.currentTimeMillis() - start;
        System.out.println(joinPoint.getSignature() + " executed in " + duration + "ms");
        return proceed;
    }
}

Для метрик (Micrometer):

java
@RestController
public class MyController {
    @Timed(value = "my.request.time")
    @GetMapping("/test")
    public String test() {
        return "OK";
    }
}

Spring Boot Actuator автоматически предоставляет эндпоинты (/actuator/metrics, /actuator/prometheus) для сбора данных.

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

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

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

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