java - Spring Boot应用程序启动时没有正确的应用程序名称

标签 java spring spring-boot

运行时

./mvnw spring-boot:run

当前的 Spring Boot 应用程序可以在浏览器中使用当前 URL 打开

http://localhost:8080/

但不是

http://localhost:8080/AppName

因此,即使在 Swagger 中,API 也必须像这样检索

http://localhost:8080/api/swagger.json

而不是这个

http://localhost:8080/AppName/api/swagger.json

那么如何在上下文中添加AppName呢?过去很简单,web.xml 是基于 xml 的,在基于 java 的配置中我添加了

spring.application.name=AppName

但仍然没有解决问题。

最佳答案

So how to add the AppName in the context?

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

3) 使用操作系统环境变量
在 Linux 上:- $ export SERVER_SERVLET_CONTEXT_PATH=/AppName
在 Windows 上:- 设置 SERVER_SERVLET_CONTEXT_PATH=/AppName

4) 使用命令行参数

$ java -jar app.jar --server.servlet.context-path=/AppName

5)使用Java配置

在 Spring Boot 2 中,我们可以使用 WebServerFactoryCustomizer:

@Bean
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>
  webServerFactoryCustomizer() {
    return factory -> factory.setContextPath("/AppName");
}

使用 Spring Boot 1,我们可以创建一个 EmbeddedServletContainerCustomizer 的实例:

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

注意:-优先级按降序排列,Spring Boot 使用它来选择有效的配置:

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

关于java - Spring Boot应用程序启动时没有正确的应用程序名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52958440/

相关文章:

java - 了解 Hadoop 文件系统计数器

java - 有没有一种简单的方法可以让客户端 JavaScript 访问服务器端类(如枚举)?

java - 在 java spring hibernate 的 userDAO 类中写什么东西

java - 如何在JHipster中为FeignClient启用Autowired?

java - 如何从rest webservice spring返回自定义响应

java - 如何将包配置/属性文件放在/etc karaf 文件夹中

java - @RequestParam 任意值

java - 构造函数 HttpComponentsClientHttpRequestFactory(CloseableHttpClient) 未定义

java - 使用 JpaRepository Spring-data-jpa 对子列表总计数进行排序

java - 如何检索@Async方法的结果