Sobes.tech
Junior — Middle

Miks, kui rakenduses kasutatakse kontrollerit, ei suuda DispatcherServlet seda tuvastada?

sobes.tech AI

Vastus AI-lt

DispatcherServlet ei suuda tuvastada kontrollorit, kui see ei ole registreeritud Springi kontekstis või ei ole märgitud vastava annotatsiooniga, näiteks @Controller või @RestController.

Peamised põhjused:

  • Kontrollor ei asu Springi skaneeritavas paketis (ei kuulu basePackages alla komponendi skaneerimiseks).
  • Kontrollor ei ole märgitud Springi komponendina.
  • Kontrollor on loodud käsitsi, mitte Springi konteineri kaudu, seetõttu ei tunne DispatcherServlet teda.

DispatcherServlet otsib rakenduse kontekstist kontrollori bean-e, et suunata HTTP-päringuid. Kui kontrollor ei ole registreeritud Spring Bean-na, jäetakse ta tähelepanuta.