Junior — Middle
Prečo, ak je v aplikácii použit kontrolér, ho DispatcherServlet nedokáže zistiť?
sobes.tech AI
Odpoveď od AI
DispatcherServlet nebude môcť zistiť kontrolér, ak nie je zaregistrovaný v kontexte Spring alebo nie je označený príslušnou anotáciou, napríklad @Controller alebo @RestController.
Hlavné dôvody:
- Kontrolér sa nenachádza v balíčku, ktorý Spring skenuje (nie je zahrnutý v basePackages pre skenovanie komponentov).
- Kontrolér nie je označený ako Spring komponent.
- Kontrolér bol vytvorený ručne a nie cez Spring kontajner, preto DispatcherServlet o ňom nevie.
DispatcherServlet hľadá bean-y kontrolérov v kontexte aplikácie, aby smeroval HTTP požiadavky. Ak kontrolér nie je zaregistrovaný ako Spring Bean, bude ignorovaný.