Sobes.tech
Назад к вопросам
Junior — Middle
61

Каким образом фреймворк Spring определяет и регистрирует контроллеры в приложении?

Ответ от нейросети

sobes.tech AI

Spring определяет и регистрирует контроллеры с помощью механизма сканирования компонентов (component scanning). Классы, помеченные аннотацией @Controller или @RestController, автоматически обнаруживаются в указанных пакетах при старте приложения.

Процесс выглядит так:

  1. В конфигурации Spring указывается пакет для сканирования с помощью @ComponentScan.
  2. Spring ищет классы с аннотациями @Controller или @RestController.
  3. Найденные классы создаются как бины в контексте приложения.
  4. Методы контроллеров, помеченные аннотациями @RequestMapping, @GetMapping и т.д., регистрируются как обработчики HTTP-запросов.

Пример:

@RestController
@RequestMapping("/api")
public class MyController {
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, World!";
    }
}

При запуске Spring создаст бин MyController и свяжет путь /api/hello с методом sayHello().