Ich möchte eine Spring-Boot-Anwendung ausführen, aber es auf mehrere Ports hören.Spring Boot sperate @Configurations für mehrere Anwendungskontexte
Ziel ist es, einen Apache mehrere (Sub-) Domänen an die Spring-Boot-Anwendung (Tomcat) an verschiedenen Ports weiterleiten zu lassen. Beispiel:
example.com/** -> PORT 8080
client.example.com/** -> PORT 8090
employee.example.com/** -> PORT 8100
Soweit ich aus mehreren Threads auf SO verstanden, ich bin am besten aus mehreren @SpringBootApplication
Kommentierte Klassen von einer Hauptklasse starten, nicht wahr? (https://stackoverflow.com/a/25870132/1510659)
Was ich noch nicht verstanden habe, ist, wie man jede dieser Anwendungen separat konfigurieren kann.
Lasst uns sagen, dass ich diese drei Anwendungen ins Leben gerufen haben, wie oben in den verlinkten Beitrag gezeigt:
MainExampleApplication
ClientExampleApplication
EmployeeExampleApplication
Nun habe ich zum Beispiel getrennte Spring Security @Configuration
Klassen für jede dieser Anwendungen, als auch haben wollen als @RequestMappings
, die den gleichen Wert haben können (zB "/").
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.
UPDATE
Wie in iamiddy Antwort und xeon Kommentar erwähnt, habe ich Federprofile dafür. Ich habe den SpringApplicationBuilder beim Start mit einem Profil für jeden meiner Anwendungskontexte versehen und den @Profile("some_profile")
auf dem @Components
verwendet, der nur für einige der Kontexte verfügbar sein sollte.
Könnten Sie in Betracht ziehen, [Spring Profiles] (http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html) dafür zu verwenden? – Xeon