Wenn ich meine Anwendung auf Eclipse mit einem klassischen Kontext-Laden laufe, keine Sorge, die Beans, die in der Config-Klasse definiert sind, die dem gewählten Spring-Profil entspricht, sind korrekt instanziiert.
%Vor%Aber wenn ich die Anwendung mit Spring Boot starte, werden diese Beans nicht instanziiert.
%Vor%Hier ist die Java-Konfigurationsklasse für das Springprofil "dev":
%Vor%Hier die Klasse AbstractPersistenceConfig , die die anderen Beans enthält, die nicht instanziiert sind:
%Vor%Ich habe versucht, die Anwendung mit den folgenden Befehlen mit dem gleichen Ergebnis auszuführen:
%Vor%Konkret ist die Bean " sessionFactory " nicht instanziiert und kann nicht in meine GenericDaoImpl Klasse ...
eingefügt werdenDer Stacktrace:
%Vor%Ich benutze den Spring Boot 1.0.2.RELEASE ohne das Spring Boot Parent POM. Ich definiere das nur auf dem POM:
%Vor%Hast du ein paar Ideen?
Vielen Dank !!
Ich denke, dass du @Import
deine @Configuration
-Klasse direkt verwenden oder die Annotation @ComponentScan
verwenden musst. Ihr erstes Beispiel, das ClassPathXmlApplicationContext
verwendet, wird funktionieren, weil die XML-Verarbeitung zu einem frühen Zeitpunkt stattfindet und die <component-scan>
Ihre @Configuration
-Klassen vor ihrer Verarbeitung findet.
Im zweiten Beispiel hat SpringApplication
bereits mit der Verarbeitung Ihrer @Configuration
-Klassen begonnen und das XML wird über @ImportResource
geladen. Bis zu diesem Zeitpunkt ist es nicht mehr möglich, dass <component-scan>
der XML-Datei @Configuration
hinzufügt.
Antwort sortieren: Probieren Sie @ComonentScan
in Ihrer Klasse BasketHandlerLoader
aus.
Tags und Links java maven spring spring-boot spring-profiles