【问题标题】:Is there a standard way to customize the deploy path in Spring Boot?有没有标准的方法来自定义 Spring Boot 中的部署路径?
【发布时间】:2013-09-17 13:34:24
【问题描述】:

我现在正在探索Spring Boot 的可能性,但我陷入了僵局。我希望能够同时运行两个 Spring Boot 应用程序,它们都在同一台服务器上,但路径不同(一个部署在 /,另一个部署在 /another-path)。

因为这是在 Spring Boot 中运行的嵌入式 Tomcat 实例,所以没有可供我更改的配置文件。

有没有标准的方法来做到这一点? 可能吗?

【问题讨论】:

  • Spring Boot 应用程序在它们自己的 JVM 中运行。要获得您要求的行为,您需要两个应用程序位于同一个 JVM 中,这不是 Spring Boot 的设计目标。

标签: java spring tomcat spring-boot


【解决方案1】:

由于它使用嵌入式 tomcat,您应该能够将/META-INF/context.xml 添加到指定path 的每个应用程序(至少这应该适用于普通 tomcat)。

这适用于我们普通的嵌入式 tomcat 东西,所以我希望它也适用于 Spring Boot。

【讨论】:

    【解决方案2】:

    Spring Boot 带有一些预构建的属性支持。如果您创建 application.properties 文件,您可以包括:

    server.port=<another port>
    server.address=<another IP address>
    server.sessionTimeout=<another timeout setting>
    server.contextPath=/your-other-path
    

    这可以在 application.properties 中与您的可运行 JAR 相邻,嵌入在 JAR 文件中,或者简单地应用为 -Dserver.contextPath=/your-alt-path 使用 java 命令。这些是级联的,这意味着您可以在 JAR 中嵌入一组默认值,用本地 application.properties 文件覆盖,然后最后用 -D 覆盖 application.properties选项。

    【讨论】:

    • 啊,现在它又回到我身边了。我记得在演讲中讨论和展示了这一点。谢谢!
    • 一点@Makoto,Spring Boot 不支持在同一个嵌入式容器中运行多个应用程序,我不确定这是否正是您要问的。每个应用都在自己的嵌入式容器中运行。
    猜你喜欢
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2010-09-28
    相关资源
    最近更新 更多