Back to questions
Junior — Middle
53
Почему, если в приложении используется контроллер, DispatcherServlet не сможет его обнаружить?
Answer from AI
sobes.tech AI
DispatcherServlet не сможет обнаружить контроллер, если он не зарегистрирован в контексте Spring или не помечен соответствующей аннотацией, например, @Controller или @RestController.
Основные причины:
- Контроллер не находится в пакете, сканируемом Spring (не входит в basePackages для component scan).
- Контроллер не аннотирован как компонент Spring.
- Контроллер создан вручную, а не через Spring контейнер, поэтому DispatcherServlet не знает о нем.
DispatcherServlet ищет бины контроллеров в контексте приложения, чтобы маршрутизировать HTTP-запросы. Если контроллер не зарегистрирован как Spring Bean, он будет игнорироваться.