Maison  >  Article  >  Java  >  Pourquoi mon application Spring ne peut-elle pas trouver mon bean UserService ?

Pourquoi mon application Spring ne peut-elle pas trouver mon bean UserService ?

DDD
DDDoriginal
2024-11-02 09:33:31530parcourir

Why Can't My Spring Application Find My UserService Bean?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn