Sobes.tech
Junior — Middle

Waarom kan de DispatcherServlet, als er een controller in de applicatie wordt gebruikt, deze niet detecteren?

sobes.tech AI

Antwoord van AI

DispatcherServlet kan de controller niet detecteren als deze niet is geregistreerd in de Spring-context of niet is gemarkeerd met de juiste annotatie, bijvoorbeeld @Controller of @RestController.

Belangrijkste oorzaken:

  • De controller bevindt zich niet in een door Spring gescande package (niet opgenomen in basePackages voor component scan).
  • De controller is niet geannoteerd als Spring-component.
  • De controller is handmatig gemaakt, en niet via de Spring-container, dus DispatcherServlet weet niet van hem.

DispatcherServlet zoekt naar controller-bonnen in de applicatiecontext om HTTP-verzoeken te routeren. Als de controller niet als Spring Bean is geregistreerd, wordt hij genegeerd.