Junior — Middle
Dlaczego, jeśli w aplikacji używany jest kontroler, DispatcherServlet nie będzie mógł go wykryć?
sobes.tech AI
Odpowiedź od AI
DispatcherServlet nie będzie mógł wykryć kontrolera, jeśli nie jest zarejestrowany w kontekście Spring lub nie jest oznaczony odpowiednią adnotacją, na przykład @Controller lub @RestController.
Główne przyczyny:
- Kontroler nie znajduje się w pakiecie skanowanym przez Spring (nie jest uwzględniony w basePackages do skanowania komponentów).
- Kontroler nie jest oznaczony jako komponent Spring.
- Kontroler został utworzony ręcznie, a nie przez kontener Spring, więc DispatcherServlet go nie zna.
DispatcherServlet szuka beanów kontrolerów w kontekście aplikacji, aby kierować żądania HTTP. Jeśli kontroler nie jest zarejestrowany jako Bean Spring, zostanie zignorowany.