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

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

В Spring MVC запросы в контроллер по умолчанию обрабатываются параллельно, так как сервлеты потокобезопасны. Однако, если контроллер имеет состояние (использует не-final поля), возможны проблемы с потокобезопасностью.

Для гарантированной последовательности можно:

  1. Использовать synchronized методы (но это снизит производительность)
  2. Сделать контроллер stateless (рекомендуется)
  3. Использовать @Scope("request") для создания нового экземпляра на каждый запрос

Пример потокобезопасного контроллера:

java
@RestController
public class SafeController {
    // Stateless - поля final или отсутствуют
    @GetMapping("/safe")
    public String handle() {
        return "Thread-safe response";
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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