2014-09-16 11 views
15

Chciałbym móc mieć wiele aplikacji internetowych współużytkujących projekt domeny i działających w różnych kontekstach.Uruchamianie wielu aplikacji sieci Web w jednym kontenerze rozruchu sprężynowego

Ustawiając server.contextPath =/webshop w aplikacji rozruchowej, nie muszę dodawać prefiksu wszystkich zapytań.

Chciałbym, aby sklep internetowy, administrator i strona główna współużytkowały wspólny projekt domeny zawierający wszystkie podmioty i wspólne usługi.

Może z czymś podobnym?

public static void main(String[] args) { 
    new SpringApplicationBuilder(Domain.class) 
     .showBanner(false) 
     .child(Admin.class, Webshop.class) 
     .run(args); 
} 

Moim problemem jest to, jak mogę uruchomić aplikację startową sprężyny ze wspólnego modelu domeny, a następnie kilka samodzielnych aplikacji internetowych z unikalnych contextPaths?

+2

Czy kiedykolwiek to rozgryzłeś? Mam do czynienia z dokładnie tym samym problemem. –

Odpowiedz

7

jak to na przykład:

public static void main(String[] args) { 
    start(Admin.class, Webshop.class).run(args); 
    start(Another.class).properties("server.port=${other.port:9000}").run(args); 
} 

private static SpringApplicationBuilder start(Class<?>... sources) { 
    return new SpringApplicationBuilder(Domain.class) 
     .showBanner(false) 
     .child(sources); 
} 

Byłoby uruchomić dwie aplikacje na różnych portach.

+5

to dobrze wiedzieć, ale chciałbym rozpocząć je na tym samym porcie, ale różne contextPaths. –

+2

Może 2 serwlety byłyby wystarczająco dobre? –

+7

To podejście jest sprzeczne z oryginalnym designesem architektonicznym: ma na celu przede wszystkim szybki rozwój mikrousług. Jest to więc jeden kontekst dla pojedynczej aplikacji. Domyślam się, że nie chcesz zajmować się pojedynczym kontekstem, w którym wykonywane są zadania klienta, a także rozwiązywanie złożonych problemów bezpieczeństwa. Moja rada: po prostu utwórz 2 lub 3 aplikacje przy użyciu rozruchu sprężynowego. Wdróż je w oknie dokowanym i utwórz kontener dokera z apache lub nginx lub dowolnego innego, który będzie proxy dla żądań opartych na ścieżce kontekstu, aby poprawić aplikację internetową. I będzie to wyglądało tak, jakby było to zamierzone przez springboot –

Powiązane problemy