2014-09-16 15 views
15

Tôi muốn có thể có nhiều ứng dụng web chia sẻ một dự án miền và chạy trong các contextPath khác nhau.Chạy nhiều ứng dụng web trong một thùng chứa khởi động mùa xuân

Bằng cách thiết lập server.contextPath =/webshop trong ứng dụng khởi động mùa xuân, tôi không cần tiền tố tất cả các RequestMappings.

Tôi muốn webshop, quản trị viên và trang chính chia sẻ một dự án miền chung chứa tất cả các thực thể và dịch vụ phổ biến.

Có thể với một cái gì đó như thế nào?

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

Vấn đề của tôi là làm cách nào để bắt đầu ứng dụng khởi động mùa xuân với mô hình miền phổ biến và sau đó là một vài ứng dụng web độc lập với contextPath độc đáo?

+2

Bạn đã bao giờ tìm ra điều này chưa? Tôi đang đối mặt với cùng một vấn đề. –

Trả lời

7

Như thế này ví dụ:

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); 
} 

Nó sẽ bắt đầu hai ứng dụng trên các cổng khác nhau.

+5

là điều cần biết, nhưng tôi muốn bắt đầu chúng trên cùng một cổng nhưng các contextPath khác nhau. –

+2

Có lẽ 2 servlet sẽ đủ tốt rồi? –

+7

Cách tiếp cận đó mâu thuẫn với kiến ​​trúc ban đầu về khởi động kiến ​​trúc: nó được dự định trước hết cho sự phát triển nhanh chóng của các dịch vụ nhỏ. Vì vậy, nó được inteded bối cảnh duy nhất cho ứng dụng duy nhất. Tôi đoán bạn không muốn đối phó với bối cảnh duy nhất trong đó khách hàng là nhiệm vụ quản trị được thực hiện và giải quyết các vấn đề bảo mật phức tạp. Vì vậy, tư vấn của tôi: chỉ cần tạo 2, hoặc 3 ứng dụng bằng cách sử dụng khởi động mùa xuân. Triển khai chúng để docker, và tạo một container docker của apache hoặc nginx, hoặc bất kỳ khác, mà sẽ được proxy các yêu cầu dựa trên đường dẫn ngữ cảnh để sửa ứng dụng web. Và điều này sẽ giống như nó được dự định bởi springboot –

Các vấn đề liên quan