Résolution du problème : « Le champ nécessitait un bean d'un type introuvable »
Le message d'erreur « Field userService in main. java.rest.UsersController nécessitait un bean de type « main.java.service.UserService » qui n'a pas pu être trouvé », indique que l'application Spring ne peut pas trouver un bean enregistré de type « main.java.service.UserService ».
Cause :
Ce problème survient lorsque le conteneur Spring ne parvient pas à localiser la définition du bean pour le type spécifié. Les beans sont normalement définis à l'aide d'annotations telles que @Service, mais lorsque vous utilisez MongoDB avec Spring, vous étendez généralement une interface de référentiel à partir de MongoRepository.
Solutions :
Il existe deux possibilités solutions pour résoudre ce problème :
Solution 1 : Restructuration de la structure du projet
Déplacez la classe UserService dans un package analysé par le conteneur Spring. Par défaut, Spring analyse tous les packages sous le package de base où l'annotation @SpringBootApplication est déclarée. Si votre classe principale se trouve dans com.example.something, déplacez UserService vers com.example.something.service.
Solution 2 : utilisation de @ComponentScan
Ajoutez ce qui suit ligne vers votre classe principale où l'annotation @SpringBootApplication est déclarée :
<code class="java">@SpringBootApplication(scanBasePackages = { "com.example.something", // Your default scanned package "main.java.service" // The package containing the UserService class })</code>
Cela inclura explicitement le package "main.java.service" dans le processus d'analyse du bean.
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!