Desarrollar microservicios puede ser cansado — haces un cambio, reinicias la aplicación, pierdes un poco más de tiempo para comprobar el resultado. Buenas noticias: DevTools se encarga de parte de esa rutina! Esta herramienta fue creada precisamente para acelerar el proceso de desarrollo.
¿Qué es DevTools?
DevTools es un conjunto de herramientas de Spring Boot que incluye:
- Reinicio automático de la aplicación al cambiar el código.
- Live reload — actualización del navegador justo después de los cambios.
- Configuraciones cómodas que se pueden desactivar en producción para acelerar el desarrollo.
¿Por qué DevTools es útil para microservicios? Aquí va una verdad simple (casi poética): microservicios = muchos cambios = más tiempo para probar y depurar. DevTools ayuda a:
- Evitar tener que reiniciar la aplicación manualmente después de cada cambio.
- Acelerar las pruebas y la depuración de cambios en el REST API u otros componentes de los microservicios.
- Ahorrar tiempo, librándote de acciones rutinarias innecesarias.
Instalación y configuración de DevTools
Para activar DevTools en el proyecto, añade la siguiente dependencia en tu pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
Si prefieres Gradle:
implementation 'org.springframework.boot:spring-boot-devtools'
Nota: DevTools está pensado solo para el proceso de desarrollo. Se desactiva automáticamente en el entorno prod, así que no te preocupes por el rendimiento en producción.
Ahora reinicia la aplicación (sí, ironía 😅, pero es la única vez, lo prometo), ¡y ya está todo listo!
¿Cómo funciona?
- Arranca la aplicación.
- Haz algún cambio en el código (por ejemplo, corrige un texto en un REST-controller).
- Guarda los cambios.
- DevTools reiniciará la aplicación automáticamente, ¡y verás el resultado actualizado al instante!
Para una experiencia más agradable puedes instalar un plugin en tu navegador (por ejemplo, Live Reload para Chrome) — esto permitirá actualizar la página tras cada cambio automáticamente.
Perfiles de Spring Boot: configurar aplicaciones para distintos entornos
Perfil de Spring — es una forma de cambiar configuraciones según el entorno actual de la aplicación. Por ejemplo:
- Desarrollo (
dev) — usamos la base de datos embebida H2. - Pruebas (
test) — conectamos configuraciones de testing. - Producción (
prod) — configuraciones reales con una base de datos de verdad.
Spring Boot permite añadir perfiles para simplificar la gestión de configuraciones en las distintas etapas del desarrollo.
Configurar perfiles en application.yml
Creemos un ejemplo de application.yml para definir distintas configuraciones por entorno.
# Configuración general (por defecto)
server:
port: 8080
spring:
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
username: sa
password: password
# Configuración para el perfil dev
---
spring:
config:
activate:
on-profile: dev
server:
port: 8081
logging:
level:
root: DEBUG
# Configuración para el perfil prod
---
spring:
config:
activate:
on-profile: prod
spring:
datasource:
url: jdbc:mysql://prod-db-server/database
username: prod_user
password: prod_password
logging:
level:
root: INFO
Así es como funciona:
- El separador
---indica el inicio de un nuevo perfil. - La propiedad
spring.config.activate.on-profileactiva el perfil.
Elección del perfil
Activa un perfil estableciendo la variable de entorno SPRING_PROFILES_ACTIVE:
export SPRING_PROFILES_ACTIVE=dev
O especifica el perfil en la línea de comandos al arrancar la aplicación:
java -Dspring.profiles.active=prod -jar your-app.jar
Si usas un IDE, indica el perfil en la configuración de ejecución.
Aplicación práctica
- Crea dos perfiles —
devyprod. - Configura dev para trabajar con H2 y prod para MySQL.
- Activa
devpara el desarrollo local. Asegúrate de que todo funciona. - Cambia al perfil
prody verifica la conexión con la base de datos real.
¿Cómo la combinación de DevTools y perfiles facilita el desarrollo?
Los microservicios evolucionan rápidamente y la gestión de configuraciones es inevitable. En lugar de editar configuraciones manualmente para cada tarea, ahorramos mucho tiempo gracias a los perfiles.
Y DevTools nos permitirá comprobar cambios rápidamente sin reinicios manuales. Al final obtenemos un enfoque amigable para el desarrollador — estrés mínimo y máxima eficiencia.
Profundizando en DevTools: características y limitaciones
Con DevTools el desarrollo no es solo reinicio automático. Aquí tienes algunas otras ventajas:
- Desactivar el cacheo de plantillas:
- En
application.ymlañade:spring.thymeleaf.cache: false - Esto te permite ver inmediatamente los cambios en las plantillas HTML.
- En
- Ajustes adicionales para live reload:
- DevTools reinicia la aplicación solo al cambiar la carpeta
src/main. - Los archivos en
src/testno se monitorizan — esto evita que los tests provoquen reinicios de la aplicación.
- DevTools reinicia la aplicación solo al cambiar la carpeta
No lo olvides: DevTools es una herramienta para desarrollo. No intentes usarla en producción. Eso es casi tan mala idea como implementar tu propia "rueda" en vez de usar una librería probada.
Conclusiones
Ahora sabes:
- Configurar Spring Boot DevTools para acelerar el desarrollo.
- Usar perfiles para ajustar los microservicios a distintos entornos.
- Activar las configuraciones adecuadas según el entorno en el que estés trabajando.
Los conocimientos sobre DevTools y perfiles te servirán no solo para microservicios, sino para cualquier otra aplicación. Y recuerda: más automatización — menos rutina, así que más tiempo para las cosas que te molan como escribir comentarios en el código o leer la documentación 😉.
GO TO FULL VERSION