C'est la première fois que je développe indépendamment un projet Springboot. Je ne m'attendais pas à être aussi frustré au début, quel que soit le chemin auquel j'accède, il obtient toujours 404. Je recherche cette erreur depuis près de douze heures.
Le chemin est mal écrit
La classe d'application n'est pas dans le même package que le contrôleur
et d'autres problèmes, les solutions suivantes peuvent vous être utiles.
La console ne signale pas d'erreur lorsque la requête renvoie 404. Je pensais que c'était une erreur d'initialisation de Spring DispatcherServlet 'dispatcherServlet'. La raison en est que 404 est renvoyé lors de la demande, et seules trois lignes de journaux apparaîtront sur la console :
J'ai donc recherché des erreurs liées à l'initialisation de Spring DispatcherServlet. Malheureusement, j'ai parcouru presque tous les blogs et je n'ai toujours pas résolu le problème. Je crois aussi que les frères recherchant des journaux de ligne ont également rencontré ce problème, mais ce que je veux dire ici, c'est que cette ligne de journaux est normale. J'ai recréé un projet Springboot et découvert que la console imprimerait également ces trois lignes de journaux lorsque la demande aboutissait.
Le malentendu 2 est basé sur le malentendu 1 ci-dessus, car tout le monde pense que l'initialisation de Spring DispatcherServlet est une erreur, alors ils recherchent des méthodes associées. Une méthode consiste à apporter les modifications suivantes dans le fichier de configuration.
Mais d'après mon observation, Initializing Spring DispatcherServlet ne s'imprime qu'une seule fois pendant tout le démarrage du projet, ce qui signifie que ce DispatcherServlet n'est initialisé qu'une seule fois. (Un peu absurde hahaha) La configuration ci-dessus consiste à initialiser le DispatcherServlet lorsque le projet démarre. S'il n'est pas défini ou défini sur un nombre négatif, alors le DispatcherServlet est initialisé lorsque la première requête arrive. Vous pouvez l'essayer vous-même et voir si vous ajoutez la configuration ci-dessus puis démarrez le projet, les trois lignes de journaux seront imprimées directement au lieu d'attendre la demande.
Le problème est en fait très simple, car nous utilisons l'annotation @ComponentScan Dans Springboot normal, il n'est pas nécessaire d'utiliser cette annotation, donc la classe d'application analysera automatiquement tous les fichiers du package et sous-. colis où il se trouve. Mais si cette annotation est utilisée, celle par défaut sera invalide. Les raisons d'utiliser l'annotation @ComponentScan ici peuvent être variées. J'ai introduit une dépendance sur la création automatique de table et j'ai suivi le didacticiel pour ajouter un ComponentScan à la classe d'application. La solution consiste donc à ajouter le chemin du package où se trouve la classe d'application.
Au fond, je ne suis toujours pas assez sensible à ces annotations et j'ai passé beaucoup de temps à faire un travail inutile, mais heureusement cela a été résolu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!