运行时
./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
但仍然无法解决问题。
答案 0 :(得分:6)
那么如何在上下文中添加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);
}
3)使用OS环境变量
在Linux上:-$ export SERVER_SERVLET_CONTEXT_PATH=/AppName
在Windows上:-set SERVER_SERVLET_CONTEXT_PATH=/AppName
4)使用命令行参数
$ java -jar app.jar --server.servlet.context-path=/AppName
5)使用Java Config
在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 Config
命令行参数
Java系统属性
操作系统环境变量
当前目录中的application.properties
类路径中的application.properties(src / main / resources或打包的jar文件)
答案 1 :(得分:0)
设置上下文路径
server.contextPath=/AppName
server.servlet.contextPath=/AppName
答案 2 :(得分:0)
您应该使用
server.servlet.context-path
用于Spring Boot 2.x
server.context-path
适用于Spring 1.x
在您的application.properties文件中。
答案 3 :(得分:0)
在application.properties中添加以下行(适用于Spring Boot 1.x):
$email = DB::table('users')->where('name', 'John')->value('email');
如果您的版本是2.x,请使用以下命令:
server.contextPath=/AppName