Configurar correctamente el puerto y el path de una aplicación Spring Boot es uno de los primeros pasos que todo desarrollador debe dominar. Estas configuraciones definen cómo y dónde se exponen los servicios, y conocerlas a fondo permite tener control total sobre el despliegue desde las etapas más tempranas del proyecto.
¿Cómo agregar la dependencia de Spring Boot Starter Web?
Antes de modificar cualquier configuración, es necesario contar con la dependencia adecuada. En el archivo pom.xml se agrega Spring Boot Starter Web [0:42], que trae consigo todo lo necesario para trabajar con servicios web. Spring Boot se encarga de autoconfigurar e inicializar todas las librerías incluidas en esta dependencia.
Una vez agregada, se refrescan los cambios de Maven para que las dependencias se descarguen. Se puede verificar que la descarga fue exitosa revisando las librerías externas del proyecto, donde aparecerán todas las dependencias relacionadas con web [1:08].
¿Cómo cambiar el puerto y el context path en application.properties?
El archivo application.properties es el centro de configuración de una aplicación Spring Boot. Aquí se definen propiedades clave que modifican el comportamiento del servidor.
- server.port: define el puerto donde se despliega la aplicación. Por defecto es 8080, pero puede cambiarse a cualquier otro, por ejemplo
8081 [1:36].
- server.servlet.context-path: establece el path base para todos los servicios. En este caso se configura como
/app [1:56].
Estas dos propiedades permiten que al acceder desde el navegador, la URL quede compuesta por localhost:8081/app seguida de la ruta específica del servicio.
¿Qué es un controlador de prueba y cómo crearlo?
Para validar que la configuración funciona, se crea un controlador llamado TestController [2:15]. Este se anota con el estereotipo @Controller, que indica a Spring que esa clase manejará solicitudes HTTP.
Dentro del controlador se utiliza:
@RequestMapping: anotación que acepta todas las solicitudes HTTP dirigidas a ese método [2:30].
@ResponseBody: indica que el retorno del método será el cuerpo de la respuesta HTTP.
ResponseEntity<String>: objeto que encapsula tanto el cuerpo de la respuesta como el código de estado HTTP, en este caso HttpStatus.OK [2:50].
El método retorna el texto "Hello from controller", que se visualiza directamente en el navegador al consumir el servicio.
¿Qué servidor embebido utiliza Spring Boot por defecto?
El servicio se despliega dentro de un contenedor servlet embebido. Por defecto, Spring Boot utiliza Tomcat como servidor web integrado [3:28], aunque es posible configurar otros como Jetty o Undertow. En los logs de la aplicación se confirma que el despliegue ocurre en el puerto 8081.
¿Para qué sirve Spring Boot DevTools?
Una dependencia que mejora significativamente la experiencia de desarrollo es Spring Boot DevTools [3:50]. Se agrega en el pom.xml y, tras refrescar Maven, queda disponible.
Su principal beneficio es el reinicio automático del servidor cuando se detectan cambios en el código fuente. En lugar de detener y volver a lanzar toda la aplicación, basta con compilar el archivo modificado para que los cambios se reflejen de inmediato [4:10].
El flujo de trabajo con DevTools es simple:
- Se modifica el código en el controlador.
- Se ejecuta Build > Build Project o se usa un atajo de teclado configurado.
- El servidor se redesplega automáticamente sin reinicio completo.
- Los cambios se verifican recargando la página en el navegador [4:40].
¿Cómo configurar el atajo de teclado para redespliegue rápido?
En entornos como IntelliJ IDEA o Eclipse, es posible asignar una combinación de teclas para ejecutar el build y redespliegue de forma instantánea. Por ejemplo, configurar Ctrl + S para que al guardar se compile y redespliegue automáticamente [5:12]. Esto elimina la necesidad de buscar botones en la interfaz y agiliza el ciclo de desarrollo.
Dominar estas configuraciones básicas de puerto, context path y herramientas de desarrollo sienta las bases para construir servicios robustos. Si tienes alguna duda sobre cómo aplicar estas propiedades en tu proyecto, comparte tu experiencia en los comentarios.