Ich habe eine Spring-Boot-Anwendung (Y), die auf einer Reihe von Bibliotheksdateien basiert, die als x.jar gepackt sind und als Abhängigkeit in der pom.xml der Anwendung Y erwähnt werden.
x.jar hat eine Bean namens (User.java) Anwendung Y hat eine Java-Klasse namens (Department.java)
Während ich versuche, eine Instanz von User.java in Department.java automatisch zu starten, erhalte ich den folgenden Fehler
Kann ich eine Bean, die in einem abhängigen Bibliotheksglas vorhanden ist, nicht @Autowire?
Feld konnte nicht automatisch gestartet werden: privater com.User-Benutzer; verschachtelte Ausnahme ist org.springframework.beans.factory.NoSuchBeanDefinitionException: Nein Qualifizierendes Bean vom Typ [com.User] gefunden für Abhängigkeit: erwartet um mindestens eine Bean, die sich als Autowire-Kandidat dafür qualifiziert Abhängigkeit. Abhängigkeitsanmerkungen: {@ org.springframework.beans.factory.annotation.Autowired (erforderlich = true)}
Kein qualifizierendes Bean vom Typ [com.User] für Abhängigkeit gefunden: erwartet mindestens 1 Bean, die sich als Autowire-Kandidat qualifiziert Abhängigkeit. Abhängigkeitsanmerkungen: {@ org.springframework.beans.factory.annotation.Autowired (erforderlich = true)} **
Hier ist der Code in der Spring Boot-Anwendung 'Y'
%Vor%Hier ist der Code von User.java in der Bibliothek x.jar
%Vor%Dies ist der Abhängigkeitseintrag für x.jar in der pom.xml der Anwendung Y
%Vor%Dies ist die Hauptklasse in der Anwendung 'Y'
%Vor%Sowohl Abteilung als auch Benutzer sind unter verschiedenen Paketen.
Lösung: Ich habe die folgenden 2 Schritte angewendet und jetzt funktioniert der Autowiring einwandfrei.
Schritt 1: Die folgende Klasse in der JAR-Datei hinzugefügt
%Vor%Schritt 2: Diese Konfigurationsklasse wurde in die Hauptklasse des Y-Projekts importiert
%Vor%Sie müssten die Paketnamen Ihrer Hauptklasse und der Benutzerklasse hinzufügen, um 100% sicher zu sein, aber wahrscheinlich liegt die Benutzerklasse nicht im selben Paket (oder einem Unterpaket) Ihrer Hauptklasse. Dies bedeutet, dass das Scannen von Komponenten es nicht aufnimmt.
Sie können den Frühling zwingen, andere Pakete wie folgt anzusehen:
%Vor%