Ich möchte MongoRepository in meine Serviceklasse integrieren, und das kann ich nicht. Ich benutze Java Config. Dies ist meine Repository-Klasse:
%Vor%Dies ist der Dienst, der UserRepository verwendet:
%Vor%Dies ist Teil meines Controllers, der den Dienst verwendet:
%Vor%Meine Haupt-Java-Config-Klasse sieht so aus:
%Vor%MjurAppConfig:
%Vor%Und mongo config:
%Vor%Ausnahme:
%Vor%Ich suchte nach einer Lösung für dieses Problem, aber ich konnte nichts finden. IMO Component Scan sollte das Repository finden und es an den Spring-Kontext binden. Leider funktioniert es nicht so.
@NoRepositoryBean
Annotation. @EnableMongoRepository
Annotation hinzu. BEARBEITEN (nach Kommentaren und Ändern des geposteten Codes)
Dies passiert, weil die Spring Web-Anwendung zwei Kontexte hat: 1 ist der Stammkontext und ein weiterer ist der Webkontext (der, den Sie mit der @EnableWebMvc
Annotation registrieren).
Bitte tun Sie Folgendes:
1) Entfernen Sie die @Import
Annotation von Ihrem MjurWebAppConfig
- denken Sie daran, dass dies Ihr Web-Kontext ist.
2) Fügen Sie @Import
in der MjurAppConfig
config im Wesentlichen wie folgt hinzu:
Diese Schritte sollten Ihre autoverwirkte DAO-Bean in Ihrer Service-Bean sichtbar machen.
Vor EDIT:
Ich wette, dass Ihre TestService
-Bohne unter dem Paket prv.makro.mjur.service
liegt, was von der Komponente Scan-Annotation abhängt:
Mit anderen Worten: @ComponentScan
kann Ihren TestService nicht sehen, um die @Autowired
Abhängigkeit zu registrieren.
Stellen Sie sicher, dass TestService
beim Scannen der Komponente und unter der obigen Annahme sichtbar ist, wenn Sie Folgendes tun:
sollte es funktionieren.