Dre*_*mer 2 java spring spring-boot
跑步时
./mvnw spring-boot:run
Run Code Online (Sandbox Code Playgroud)
当前的Spring Boot应用程序可以在浏览器中使用当前URL打开
http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)
但不是
http://localhost:8080/AppName
Run Code Online (Sandbox Code Playgroud)
因此,即使在Swagger中,API也必须像这样检索
http://localhost:8080/api/swagger.json
Run Code Online (Sandbox Code Playgroud)
代替这个
http://localhost:8080/AppName/api/swagger.json
Run Code Online (Sandbox Code Playgroud)
那么如何AppName
在上下文中添加?在以前的web.xml基于xml的日子里很容易,在基于Java的配置中我添加了
spring.application.name=AppName
Run Code Online (Sandbox Code Playgroud)
但仍然无法解决问题。
那么如何在上下文中添加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
Run Code Online (Sandbox Code Playgroud)
2)使用Java系统属性
public static void main(String[] args) {
System.setProperty("server.servlet.context-path", "/AppName");
SpringApplication.run(Application.class, args);
}
Run Code Online (Sandbox Code Playgroud)
3)
在Linux上使用OS环境变量:- $ export SERVER_SERVLET_CONTEXT_PATH=/AppName
在Windows上:-set SERVER_SERVLET_CONTEXT_PATH=/AppName
4)使用命令行参数
$ java -jar app.jar --server.servlet.context-path=/AppName
Run Code Online (Sandbox Code Playgroud)
5)使用Java Config
使用Spring Boot 2,我们可以使用WebServerFactoryCustomizer
:
@Bean
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>
webServerFactoryCustomizer() {
return factory -> factory.setContextPath("/AppName");
}
Run Code Online (Sandbox Code Playgroud)
使用Spring Boot 1,我们可以创建以下实例EmbeddedServletContainerCustomizer
:
@Bean
public EmbeddedServletContainerCustomizer
embeddedServletContainerCustomizer() {
return container -> container.setContextPath("/AppName");
}
Run Code Online (Sandbox Code Playgroud)
注意:-优先级按降序排列,Spring Boot用来选择有效的配置:
Java Config
命令行参数
Java系统属性
OS环境变量
当前目录中的
application.properties在类路径(src / main / resources或打包的jar文件)中
归档时间: |
|
查看次数: |
706 次 |
最近记录: |