cuando se ejecuta
./mvnw spring-boot:run
aplicación de inicio de la primavera actual se abrirá en el navegador con la URL actual
http://localhost:8080/
pero no
http://localhost:8080/AppName
Así que incluso en las API Swagger tiene que recuperar como esto
http://localhost:8080/api/swagger.json
en lugar de esto
http://localhost:8080/AppName/api/swagger.json
Entonces, ¿cómo añadir el AppName
en el contexto? Fácil en los viejos tiempos en web.xml está basado en XML, en la configuración basada en Java que tengo ADD
spring.application.name=AppName
pero todavía no resuelven el problema.
Entonces, ¿cómo añadir el AppName en el contexto?
Primavera de arranque, por defecto, ofrece contenido en la ruta de contexto raíz ( “/”), pero podemos cambiar de diferentes maneras.
1) Usando 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) El uso de la propiedad del sistema Java
public static void main(String[] args) {
System.setProperty("server.servlet.context-path", "/AppName");
SpringApplication.run(Application.class, args);
}
3) El uso de la variable de entorno del sistema operativo
En Linux: - $ export SERVER_SERVLET_CONTEXT_PATH=/AppName
En Windows: -set SERVER_SERVLET_CONTEXT_PATH=/AppName
4) Utilización de argumentos de línea de comandos
$ java -jar app.jar --server.servlet.context-path=/AppName
5) Uso de Java Config
Con la primavera de arranque 2, podemos utilizar WebServerFactoryCustomizer
:
@Bean
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>
webServerFactoryCustomizer() {
return factory -> factory.setContextPath("/AppName");
}
Con la primavera de arranque 1, podemos crear una instancia de EmbeddedServletContainerCustomizer
:
@Bean
public EmbeddedServletContainerCustomizer
embeddedServletContainerCustomizer() {
return container -> container.setContextPath("/AppName");
}
Nota: - El orden de prioridad con el fin, que utiliza la primavera de arranque para seleccionar la configuración efectiva descendente:
Java Config
argumentos de línea de comandos
Java System Properties
OS variables de entorno
application.properties en el directorio actual
Application.properties en la ruta de clase (src / main / o recursos del archivo jar empaquetado)