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.