2016-08-04 34 views
0

Nehmen wir an, ich habe zwei Spring-Boot-Projekte. Das erste Projekt ist nur eine unterstützende Bibliothek mit verschiedenen Funktionalitäten. Die zweite ist das "Haupt" -Projekt (primäre Bibliothek), das das unterstützende Projekt (jar) verwendet.So vermeiden Sie die Konfiguration einer externen Bibliothek durch eine andere Bibliothek mit Spring Boot

Die unterstützende Bibliothek verfügt über einige Dienste, die vom primären Projekt automatisch gestartet werden sollten.

Wie kann ich die unterstützende Bibliothek so konfigurieren, dass die primäre Bibliothek keine Konfigurationen für die unterstützende Bibliothek vornehmen muss? Im Wesentlichen spreche ich über Komponentenscan.

Was ich bisher gelesen habe, ist, dass die primäre Bibliothek die Pakete der unterstützenden Bibliothek im Komponentenscan enthalten muss. Ist das wirklich wahr? Ich hoffe nicht, weil eine unterstützende Bibliothek meiner Meinung nach alle ihre Konfigurationen durch ihre eigene und eine andere Bibliothek (oder ein anderes Projekt) machen sollte, wenn sie nur diese unterstützende Bibliothek benutzt, sollte sie sich nicht mit der Konfiguration der unterstützenden Bibliothek befassen müssen.

Im Wesentlichen frage ich mich, ob es möglich ist, dass eine unterstützende Bibliothek sich über eine @Configuration Annotation oder dergleichen (oder @SpringBootApplication) so konfiguriert, dass eine andere Bibliothek nicht mit all diesen Details der anderen Bibliothek umgehen muss. Ich hoffe wirklich, dass das irgendwie funktioniert, weil ich denke, dass es irgendwie extrem verkabelt ist, dass eine andere Bibliothek die Arbeit für ihre unterstützende Bibliothek in Bezug auf ihre Konfiguration erledigen muss.

Antwort

0

Okay, ich habe gerade die Lösung gefunden.

Der Trick ist wie folgt.

Im unterstützenden Projekt gibt es eine Konfigurationsklasse (die ich bereits hatte, aber sie wurde nicht berücksichtigt). Die Konfigurationsklasse der Stütz Bibliothek sieht im wesentlichen wie folgt:

@SpringBootApplication 
public class SupportLibApplication { 
} 

Das primäre Projekt hat auch eine Konfigurationsklasse. Der Trick besteht darin, die Konfigurationsklasse der unterstützenden Klasse in die Konfigurationsklasse des primären Projekts aufzunehmen. Das war mein fehlendes Glied. Die Konfigurationsklasse des primären Projekt sieht nun, dass wie:

@SpringBootApplication 
@Import({SupportLibApplication.class}) 
public class QuestApplication extends WebMvcConfigurerAdapter { 
… 
} 
+0

oder, wie Sie Frühlings-Boot verwenden, den Abschnitt lesen Sie, wie Sie Ihre eigene Auto-Konfiguration erstellen und Sie können den Import weglassen und nur Sie müssen füge die Abhängigkeit hinzu. –