2017-08-21 2 views
3

Ich habe ein Java-Projekt Frühling. Ich sehe, dass eine Art, das Frühlingsprojekt zu initialisieren, diesen Code in der Hauptmethode verwendet.Spring Initialisierung außerhalb des Projekts

Ist es möglich, dies außerhalb einer Hauptmethode zu halten und dann ein Glas dieses Projekts zu machen. Fügen Sie es als Abhängigkeit in pom.xml in einem anderen Projekt hinzu und rufen Sie die Methode auf, die die Springartefakte von dort initialisiert.

Ich habe es versucht. Ich erhalte einen Fehler.

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'itemInformationRepositoryService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.example.db.app.service.ItemInformationRepositoryService.setItemInformationRepositoryService(com.example.db.app.repository.ItemInformationRepository); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.example.db.app.repository.ItemInformationRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 
+0

Können Sie einen Code hinzufügen und die Frage ausarbeiten? Wie haben Sie versucht, dies aus der Hauptmethode herauszuholen? Irgendein Code wird hilfreich sein – yaswanth

+0

Ich habe gerade eine Klasse erstellt und den ganzen Initialisierungscode in eine Methode eingefügt. Eine Instanz der Klasse erstellt und die Methode aufgerufen. – surya

Antwort

0

Die Ausnahmemeldung lautet:

Keine Warte Bohnen vom Typ [com.example.db.app.repository.ItemInformationRepository] für Abhängigkeit gefunden: mindestens 1 Bohne zu erwarten, die als autowire Kandidat qualifiziert für diese Abhängigkeit.

Dies bedeutet, dass die Klasse com.example.db.app.repository.ItemInformationRepository nicht im Spring-Kontext ist. Vielleicht haben Sie erwartet, dass Spring diese Klasse als Ergebnis Ihrer Anweisung an Spring entdeckt, um com.example.db.app zu scannen? Gemäß den Javadocs für AnnotationConfigApplicationContext.scan() ...

Führen Sie einen Scan innerhalb der angegebenen Basispakete durch.

@param basePackages die Pakete für kommentierten Klassen zu überprüfen

, um für den Frühling Also, um com.example.db.app.repository.ItemInformationRepository zu entdecken müssen Sie entweder:

  • Beschriften mit org.springframework.stereotype.Component so, dass es von scan() entdeckt
  • Registrieren Sie es auf die gleiche Weise wie Sie registrieren Config.class z ctx.register(ItemInformationRepository.class);
Verwandte Themen