【问题标题】:How do I choose the URL for my Spring Boot webapp?如何为我的 Spring Boot webapp 选择 URL?
【发布时间】:2014-08-18 13:52:55
【问题描述】:

我正在使用 Spring Boot 创建一个 Web 应用程序,但我不确定如何将 URL 从 localhost:8080 更改为 localhost:8080/myWebApp 之类的东西。

我在网上看到很多资源引用application.properties 文件并将其添加到类路径中。但是,我不确定该放在哪里。

问题

  • 在我的src/main/resources?

  • 如何在文件中分配 URL?

【问题讨论】:

    标签: url web-applications spring-boot


    【解决方案1】:

    您需要将属性server.contextPath 设置为/myWebApp

    查看this 部分文档

    设置该属性的最简单方法是在您正在使用的属性文件中(很可能是application.properties),但 Spring Boot 提供了很多不同的设置属性的方法。查看this 部分文档

    编辑

    正如@AbdullahKhan 所述,从 Spring Boot 2.x 开始,该属性已被弃用,应替换为 server.servlet.contextPath,正如 this 答案中正确提到的那样。

    【讨论】:

    • @很高兴它成功了!您的消息系统无法正常工作可能有多种原因。如果您需要帮助找到它,最好开始一个新的 SO 问题,这样每个人都可以看到而不会被当前问题分心
    • 注:如果你想把其他东西放在根上下文“/”中,你也可以设置server.servlet-path
    • 一定要包括前导“/”,所以它应该是“/myWebApp”
    • 你如何强制它只使用 RestControllers 并在没有上下文的情况下访问普通控制器?
    • 从 Spring Boot 2 开始,server.contextPath 属性已被弃用。请改用server.servlet.contextPath。查看this 答案。
    【解决方案2】:

    从 Spring Boot 2 开始,server.contextPath 属性已被弃用。相反,您应该使用server.servlet.contextPath

    所以在你的 application.properties 文件中添加:

    server.servlet.contextPath=/myWebApp

    更多详情见:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide#servlet-specific-server-properties

    【讨论】:

      【解决方案3】:

      在您的src/main/resources 中输入application.propertiesapplication.yml 并在其中输入server.contextPath

      server.contextPath=/your/context/here
      

      启动您的应用程序时,该应用程序将在http://localhost:8080/your/context/here 可用。

      有关要设置的属性的完整列表,请参阅 Spring Boot 参考指南的Appendix A.

      您也可以在启动应用程序时将其作为系统属性传递,而不是将其放在 application.properties 中

      java -jar yourapp.jar -Dserver.contextPath=/your/path/here
      

      【讨论】:

      • server.context-path 现已弃用,请立即使用 server.contextPath
      • @dsies 这些实际上是相同的...您可以使用驼色外壳或使用 - 两者都可以。
      • 你如何强制它只使用 RestControllers 并在没有上下文的情况下访问普通控制器?
      • server.contextPath 在我的 application.properties 被忽略 :( 在 Tomcat 8.5.6 上运行 Spring v1.4.2.RELEASE
      • @ChristianSchäfer:我也是这样,在 Eclipse 中。我的@SpringBootApplication 类名始终是我的上下文根。你能解决它吗?我正在使用 1.5.3。
      【解决方案4】:

      在 Spring Boot 2 中的属性,例如application.propertiesserver.servlet.context-path=/myWebApp 设置上下文路径。

      https://docs.spring.io/spring-boot/docs/2.0.1.BUILD-SNAPSHOT/reference/htmlsingle/#_custom_context_path

      【讨论】:

        【解决方案5】:

        server.contextPath 或 server.context-path 有效

        在 pom.xml 中

        1. 包装应该是战争而不是罐子
        2. 添加以下依赖项

          <dependency>
              <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
          <!-- Tomcat/TC server -->
           <dependency>
               <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-tomcat</artifactId>
              <scope>provided</scope>
           </dependency>
          

          在eclipse中,右键项目 --> Run as --> Spring Boot App。

        【讨论】:

        • 1.包装应该是战争而不是罐子 - 不正确。它也适用于 Jar 类型。
        【解决方案6】:

        标题为Spring Boot Change Context Path的帖子中很好地处理了更改Spring应用程序的上下文路径的问题

        基本上,这篇文章讨论了实现这个可视化的多种方法。

        1. Java 配置
        2. 命令行参数
        3. Java 系统属性
        4. 操作系统环境变量
        5. 当前目录中的application.properties
        6. 类路径中的 application.properties(src/main/resources 或 打包的jar文件)

        【讨论】:

          猜你喜欢
          • 2020-04-25
          • 1970-01-01
          • 2016-10-05
          • 1970-01-01
          • 2018-02-21
          • 2017-09-26
          • 2019-06-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多