Je suis à la suite de cette Démo Springboot sur le site Web de printemps pour apprendre à Créez un fichier qui accepte les téléchargements. Je reçois un message d'erreur:
@Service public interface StorageService { // implements interface. }
@bean code> Annotation à FileduploadController. li>
- J'ai essayé d'ajouter la dépendance suivante
Mise en œuvre 'org.springframework.boot: Spring-boot-démarreur-data-jpa'
RuntimeOnly 'com.h2database: H2' code>
construire.Gradle li>
-
Note: strong> Je ne veux pas connecter une base de données à ce projet de démonstration. La démonstration reconnaît qu'il n'essaie pas de connecter une base de données dans cette démo, mais que dans un environnement de production, nous le ferions. li>
- J'ai essayé d'ajouter l'annotation
@service code> au-dessus de l'interface de service de stockage. li>
- J'ai essayé d'ajouter
@Component code> au-dessus de l'interface StorageService. li>
- J'ai essayé d'ajouter le
@componentscan ("com.example.springdemouploadingfiles") code> ANNOTATION au-dessus de la classe d'application principale SpringDemouploadingFileSapplication.java Li>.
ul> Dans tous les cas, j'aimerais que certains aident à naviguer dans cette erreur afin que je puisse exécuter la démo. Vous trouverez ci-dessous mes configurations. p>
build.Gradle p> xxx pré> fileduploadcontroller.java p> xxx pré> springdemouploadingfilesApplication.java p> xxx pré> interface de stockageservice p> xxx pré> p>
4 Réponses :
Vous manquez probablement de la mise en œuvre de Vous devrez fournir un service de stockage afin que le contrôleur puisse interagir avec une couche de stockage (tel qu'un système de fichiers). La liste suivante (à partir de SRC / MAIN / JAVA / COM / Exemple / UploadingFiles / Stockage / StorageService.java) montre cette interface: p>
blockQuote> Vous pouvez commencer par: p> StorageService code>:
Je l'ai et j'ai juste essayé l'annotation @service en vain.
@ABigailHowe: Votre question mise à jour montre que vous avez ajouté l'annotation @service code> sur l'interface. Vous devez créer une classe concrète qui implémente cette interface et ajoute l'annotation là-bas.
Peut-être que vous pouvez essayer d'ajouter @componentscan ("com.example.springdemouploadingfiles") code> Comme indiqué ci-dessous, il s'agit de mentionner explicitement en démarrage à ressort que vous devez numériser ce package
Merci @nithin j'ai donné cela un essai et cela n'a pas semblé travailler non plus.
C'est votre code équivalent à celui de Github.com/ Guides de printemps / GS-Uploading-Fichiers / Blob / Master / ...
J'ai eu une erreur similaire, tout semblait être correct. Et tout était correct. Je l'ai résolu en exécutant une construction multaienne propre et maven dans l'Eclipse IDE. Si vous obtenez une erreur lors de l'exécution de Maven Clean Clean et Maven Buily, je vous invite à voir cela (si vous travaillez avec Eclipse IDE): Erreur de nettoyage maven de printemps - la Profil demandé "pom.xml" n'a pas pu être activé car il n'existe pas p>
J'ai frappé ma tête contre un mur de briques avec cela moi-même et je pense que ce tutoriel particulier est un peu ... meh. p>
Il affirme que vous pouvez suivre les étapes à partir de zéro et arriver au même point que si vous téléchargez le code source de Github. P>
Comme la plupart des guides de démarrage du printemps, vous pouvez commencer à partir de zéro et compléter chaque étape ou vous pouvez contourner les étapes de la configuration de base qui vous sont déjà familières. De toute façon, vous vous retrouvez avec du code de travail. P> blockQuote>
Cependant, il est plus tard explicitement indiqué (à la section "Créer un contrôleur de téléchargement de fichier") ... p>
L'application initiale contient déjà quelques classes pour traiter de stocker et de charger les fichiers téléchargés sur le disque. Ils sont tous situés dans le package COM.Example.UploDingFiles.Storage. Vous les utiliserez dans votre nouveau FileduploadController P> blockQuote>
Donc, ici, il s'écarte de la prémisse initiale, car il existe des cours dans le ./initial répertoire du code source que vous téléchargez à partir de Github, mais ils ne sont pas mentionnés dans le tutoriel. P>
Une fois que vous copiez ces fichiers à partir du
com.example.uploadingfiles.storage code> de classe de classe dans votre projet, il devrait compiler correctement. P>
StorageService est-il une classe que vous vous êtes fabriquée? Si oui, ajoutez @Component au-dessus de cette classe.
Où est le code de stockageservice?
Oui, j'ai une interface de stockageservice et je viens d'essayer l'annotation @service ci-dessus StorageService et qui ne fonctionnait pas.
@Abigailhowe: Vous devez créer une classe de béton qui implémente StorageService et mettez l'annotation de service là-bas. Voir ma réponse ci-dessous.