Puerto predeterminado en Spring Boot: 5 formas de configurarlo

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Por qué su Spring Boot «no quiere» escuchar en el 8080?

\n

Usted inicia su primera aplicación Spring Boot, ve el codiciado banner en la consola, abre el navegador — y aparece «Connection refused». ¿Le suena familiar? La mayoría de las veces el problema es que el puerto 8080 ya está ocupado por otro proceso (por ejemplo, Skype, Docker o una segunda instancia de su propia aplicación). O, por el contrario, necesita ejecutar tres microservicios en una misma máquina, y todos quieren tomar el mismo puerto.

\n

En este artículo analizaremos todas las formas principales de configurar el puerto en Spring Boot, desde las más simples hasta las «de producción» para entornos reales. Aprenderá cómo sobrescribir el puerto mediante archivos de configuración, variables de entorno, argumentos de línea de comandos e incluso programáticamente. Al final, le daré una lista de verificación para elegir qué método usar según la situación.

\n\n

Forma 1: application.properties — el clásico

\n

El método más común e intuitivo. En el archivo src/main/resources/application.properties basta con agregar una línea:

\n
server.port=9090
\n

Eso es todo. Después de reiniciar la aplicación, escuchará en el puerto 9090. Si necesita volver al 8080, simplemente elimine o comente la línea.

\n

Ventajas: simplicidad, claridad, funciona «de fábrica».

\n

Desventajas: está fijo en el código — para cada entorno (dev, test, prod) habrá que cambiar el archivo manualmente o usar perfiles.

\n\n

Forma 2: application.yml (YAML) — para los amantes de la estructura

\n

Si prefiere el formato YAML, la configuración se verá así:

\n
server:\n  port: 9090
\n

Preste atención a la indentación: dos espacios antes de port. YAML es sensible a los espacios, pero permite agrupar configuraciones. Por ejemplo, puede definir también la ruta de contexto:

\n
server:\n  port: 9090\n  servlet:\n    context-path: /myapp
\n

Cuándo usarlo: si su proyecto ya utiliza YAML para todas las configuraciones (por ejemplo, para Spring Cloud Config).

\n\n

Forma 3: Argumentos de línea de comandos — flexibilidad para DevOps

\n

La forma más flexible, que se usa a menudo en contenedores y CI/CD. Al ejecutar el archivo JAR, simplemente pase el parámetro:

\n
java -jar myapp.jar --server.port=9090
\n

O, si usa el plugin de Maven/Gradle:

\n
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=9090
\n

Los argumentos de línea de comandos tienen la máxima prioridad entre todas las formas de configuración en Spring Boot. Esto significa que sobrescribirán incluso lo que está escrito en application.properties.

\n

Ideal para: contenedores Docker, Kubernetes, despliegues automatizados.

\n\n

Forma 4: Variables de entorno — el estándar de las aplicaciones de doce factores

\n

Spring Boot lee automáticamente las variables de entorno y las convierte en propiedades. La regla es simple: SERVER_PORT (en mayúsculas, guion bajo en lugar de punto) se convierte en server.port.

\n

En Linux/macOS:

\n
export SERVER_PORT=9090\njava -jar myapp.jar
\n

En Windows (cmd):

\n
set SERVER_PORT=9090\njava -jar myapp.jar
\n

En Docker Compose se ve aún más elegante:

\n
services:\n  myapp:\n    image: myapp:latest\n    ports:\n      - "9090:9090"\n    environment:\n      - SERVER_PORT=9090
\n

Por qué es genial: las variables de entorno no se incluyen en el repositorio, son fáciles de cambiar para diferentes entornos y siguen la metodología de aplicación de doce factores.

\n\n

Forma 5: Configuración programática — para el microgestión

\n

A veces es necesario calcular el puerto dinámicamente (por ejemplo, encontrar un puerto libre u obtenerlo de un servicio externo). Entonces el código Java viene al rescate.

\n

La opción más simple es sobrescribir el método setServerPort en la clase

Blogs

Book Recommendations