如何重命名Spring MVC Web App上下文根?

时间:2016-01-19 10:27:29

标签: java spring spring-web contextpath

我正在尝试重命名我的Spring MVC Web应用程序。 当我运行它时,URL中有一个旧名称: http://localhost:8080/oldName/

在项目属性>资源中,我设置了Path:/ newName 以及在Web项目设置中,上下文根:newName

但它没有用,我还有http://localhost:8080/oldName/ 如何重命名?

1 个答案:

答案 0 :(得分:0)

有多种方法,这取决于您是否使用例如spring-boot:

  1. 在application.properties/yml文件中:
  

server.servlet.context-path = / newName

  1. Java系统属性:

您还可以在初始化上下文之前将上下文路径设置为Java系统属性:

public static void main(String[] args)
{
    System.setProperty("server.servlet.context-path", "/newName");
    SpringApplication.run(Application.class, args);
}
  1. 操作系统环境变量:

Linux:

  

导出SERVER_SERVLET_CONTEXT_PATH = / newName

Windows:

  

设置SERVER_SERVLET_CONTEXT_PATH = / newName

上述环境变量用于Spring Boot 2.x.x,如果我们有1.x.x,则该变量是SERVER_CONTEXT_PATH。

  1. 命令行参数

我们也可以通过命令行参数动态设置属性:

  

java -jar app.jar --server.servlet.context-path = / newName

  1. 使用Java Config

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

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

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

@Bean
public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
    return container -> container.setContextPath("/newName");
}
  1. Eclipse + Maven

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <version>2.9</version> <configuration> <wtpversion>2.0</wtpversion> <wtpContextName>newName</wtpContextName> </configuration> </plugin>

    1. Eclipse + Gradle

    apply plugin: 'java' apply plugin: 'war' apply plugin: 'eclipse-wtp' eclipse { wtp { component { contextPath = 'newName' } } }

以下链接可能会有所帮助: