当前位置: 首页 > 知识库问答 >
问题:

Spring boot应用程序启动时没有正确的应用程序名称

惠志
2023-03-14

运行时

./mvnw spring-boot:run

当前的spring boot应用程序可以用当前的URL在浏览器中打开

http://localhost:8080/

但不是

http://localhost:8080/AppName
http://localhost:8080/api/swagger.json
http://localhost:8080/AppName/api/swagger.json
spring.application.name=AppName

共有1个答案

锺离俊雄
2023-03-14

那么如何在上下文中添加AppName呢?

Spring Boot默认情况下在根上下文路径(“/”)上提供内容,但我们可以用不同的方式更改它。
1)使用application.properties/yml

   For Boot 1.x, the property is server.context-path=/AppName
   For Boot 2.x, the property is server.servlet.context-path=/AppName

2)使用Java系统属性

public static void main(String[] args) {
    System.setProperty("server.servlet.context-path", "/AppName");
    SpringApplication.run(Application.class, args);
}
$ java -jar app.jar --server.servlet.context-path=/AppName
@Bean
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>
  webServerFactoryCustomizer() {
    return factory -> factory.setContextPath("/AppName");
}

使用Spring Boot1,我们可以创建EmbeddedServletContainerCustomizer的实例:

@Bean
public EmbeddedServletContainerCustomizer
  embeddedServletContainerCustomizer() {
    return container -> container.setContextPath("/AppName");
}

注意:-优先级降序,Spring Boot使用该优先级来选择有效配置:

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

 类似资料:
  • 我有一个quarkus应用程序,当我用下面的命令构建应用程序时,进程第一次开始完美地编译quarkus:dev-DskipTests=true 成功启动的日志: 但是当我停下来重新开始这个过程时,过程并没有开始... 启动失败的日志: 当我尝试重新启动机器,然后启动quarkus服务时,它会再次工作。 pom。xml: 如果有人遇到过类似的行为,请告诉我,这可能是什么根源。

  • 使用spring-boot时,一切工作都很好。尽管如此,在spring-boot中已删除了注释和。我试图将代码重构为新版本,但我做不到。对于以下测试,我的应用程序在测试之前没有启动,http://localhost:8080返回404: 如何重构测试以使其在Spring-Boot1.5中工作?

  • 我正在尝试开发一个应用程序,它应该能够运行在只有CLI的环境中,以及在启用GUI的模式下。由于我的一些工作是由Jav FX线程完成的,所以我需要在不启动图形引擎的情况下启动JavaFX主线程,因为这在只使用CLI的环境中会崩溃。我该怎么做?我已经编写了第一个主类,它将使用命令行参数来决定GUI是否将被启动或者它应该在CLI模式下运行。GUI已经工作了,我只需要弄清楚如何在另一个类中运行没有GUI的

  • 问题内容: 我有一个Java应用程序。 该应用程序具有一个设置,该设置决定该应用程序是否在启动时启动。 目前,我可以通过在“启动项目”文件夹中放置/删除快捷方式来实现此目的。 但是,我想知道是否有更好的方法来处理此行为。 编辑 是的,它是Windows。抱歉,之前没有清除该内容。 该应用程序具有一个用户可以在其中触发动作的UI,并且该应用程序在运行时会定期在后台运行一些任务。 @Peter,如何在

  • 我正试图将运行在tomcat上的现有应用程序更改为SpringBoot。它一直运行到真正的SpringBoot启动。我有一个类似的应用程序运行在SpringBoot上。这就是我知道它一直运行到Springboot的原因。 我的主要方法: 我尝试使用@componentscan运行main方法,该方法具有如下所示的basePackages: 这无济于事。我尝试在main类的顶部添加@SpringBo

  • 我的程序编译了所有内容,我没有出错,但我实际上期望tomcat应该永久在端口8080上。输出中也没有Spring。在另一个项目中,我做的一切都很好。谢谢你帮助我。 我的父母: 我的tarter.class: 我的Starter-Pom: 控制台输出: 然后什么都不会发生了。谢谢你的帮助。