在一个弹簧启动容器中运行多个Web应用程序

时间:2014-09-16 11:59:49

标签: java spring spring-mvc spring-boot

我希望能够有多个网络应用共享一个域项目并在不同的contextPaths下运行。

通过在spring启动应用程序中设置server.contextPath = / webshop,我不需要为所有RequestMappings添加前缀。

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

也许有类似的东西?

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

我的问题是如何使用通用域模型启动Spring启动应用程序,然后使用独特的contextPaths启动一些独立的Web应用程序?

1 个答案:

答案 0 :(得分:8)

就像这样:

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

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