Sobes.tech
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ý.