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.
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
Tags und Links java spring tomcat spring-mvc spring-boot