Sobes.tech
Junior — Middle

Γιατί, αν χρησιμοποιείται ένας ελεγκτής στην εφαρμογή, το DispatcherServlet δεν μπορεί να τον εντοπίσει;

sobes.tech AI

Απάντηση από AI

Ο DispatcherServlet δεν θα μπορέσει να εντοπίσει τον ελεγκτή εάν δεν είναι καταχωρημένος στο πλαίσιο Spring ή δεν φέρει την αντίστοιχη σημείωση, π.χ., @Controller ή @RestController.

Κύριοι λόγοι:

  • Ο ελεγκτής δεν βρίσκεται σε πακέτο που σαρώνονται από το Spring (δεν περιλαμβάνεται στα basePackages για την σάρωση συστατικών).
  • Ο ελεγκτής δεν είναι σημειωμένος ως συστατικό του Spring.
  • Ο ελεγκτής δημιουργήθηκε χειροκίνητα και όχι μέσω του κοντέινερ Spring, επομένως ο DispatcherServlet δεν τον γνωρίζει.

Ο DispatcherServlet αναζητά beans ελεγκτών στο πλαίσιο της εφαρμογής για να δρομολογήσει τα HTTP αιτήματα. Αν ο ελεγκτής δεν είναι καταχωρημένος ως Bean του Spring, θα αγνοηθεί.