Spring Boot sperate @Configurations für mehrere Anwendungskontexte

8

Ich möchte eine Spring-Boot-Anwendung ausführen, aber sie muss mehrere Ports abhören.

Das Ziel ist es, einen Apache mehrere (Sub-) Domänen an die Spring-Boot-Anwendung (Tomcat) an verschiedenen Ports weiterleiten zu lassen. Beispiel:

%Vor%

Soweit ich von mehreren Threads auf SO verstand, bin ich am besten dran, mehrere @SpringBootApplication Annotated-Klassen aus einer Hauptklasse zu starten, oder? ( Ссылка )

Was ich noch nicht verstanden habe, ist, wie man jede dieser Anwendungen einzeln konfiguriert.

Nehmen wir an, ich habe diese drei Anwendungen gestartet, wie im verlinkten Beitrag oben gezeigt:

%Vor%

Nun möchte ich zum Beispiel separate Spring Security @Configuration -Klassen für jede dieser Anwendungen haben, sowie @RequestMappings , die möglicherweise den gleichen Wert haben (z. B. "/").

Wie kann ich den Klassen @Configuration oder @Controller mitteilen, welcher Anwendung sie zugeordnet sind?

Oder gibt es Eigenschaften, die beim Start an die Anwendungen übergeben werden können, um anzugeben, welche Ressourcen für den Kontext verantwortlich sind?

Ich hoffe, ich gehe hier nicht in eine völlig falsche Richtung. Ich habe Erfahrung mit Spring MVC und habe einige ziemlich einfache Spring-Anwendungen konfiguriert - aber nicht mit mehreren Kontexten. Ich wäre wirklich froh, wenn mich jemand in die richtige Richtung führen könnte. Vielen Dank im Voraus.

AKTUALISIEREN

Wie in iamiddys Antwort und xeons Kommentar erwähnt, habe ich dafür Spring Profiles verwendet. Ich habe dem SpringApplicationBuilder beim Start ein Profil für jeden meiner Anwendungskontexte zur Verfügung gestellt und den @Profile("some_profile") auf dem @Components verwendet, der nur für einige der Kontexte verfügbar sein sollte.

    
sldk 27.06.2015, 11:16
quelle

1 Antwort

6

Verwenden Sie Profiles Es ist ein großartiges Spring-Feature, lädt nur Beans, die mit dem Profil verknüpft sind. Sobald dies erledigt ist, starten Sie Ihre Anwendungen N mal mit verschiedenen port und profile Argumenten

Bsp: So würden Sie den ersten beginnen, machen Sie es für den Rest zu Ihrem N

java -jar -Dspring.profiles.active=production1 -Dserver.port=9000 app.jar

    
iamiddy 27.06.2015, 12:04
quelle