在一个春季启动容器中运行多个 Web 应用

2022-09-02 22:26:09

我希望能够让多个Web应用程序共享一个域项目并在不同的上下文路径下运行。

通过在春季启动应用程序中设置server.contextPath=/webshop,我不需要为所有请求映射添加前缀。

我希望网上商店,管理员和主页共享一个包含所有实体和公共服务的公共域项目。

也许有类似的东西?

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

我的问题是,如何启动具有公共域模型的 Spring Boot 应用,然后启动几个具有唯一上下文路径的独立 Web 应用?


答案 1

例如:

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

它将在不同的端口上启动两个应用程序。


答案 2

推荐