La configuración de un proyecto SpringBoot es crucial para asegurar su correcta operatividad y adaptabilidad a diferentes entornos. A través de esta guía, te enseñaremos a ajustar los parámetros de configuración utilizando el archivo application.properties, pero también a través de application.yml, o incluso mediante la línea de comandos.
¿Qué es el archivo application.properties?
El archivo application.properties es un recurso vital en proyectos de SpringBoot, ya que nos permite ajustar diversas configuraciones de la aplicación. Dentro de las posibilidades más comunes, podemos:
Modificar el puerto por el cual se ejecuta la aplicación.
Alterar el context path de la aplicación.
Añadir variables o atributos personalizados.
Gestionar diferentes perfiles para distintos entornos.
¿Cómo modificar el puerto de la aplicación?
Un aspecto común es cambiar el puerto predeterminado, que tradicionalmente es el 8080. Para hacer esto:
Abre el archivo application.properties.
Añade la línea:
server.port=8090
Relanza la aplicación para que los cambios surtan efecto. Utiliza el botón de ejecución dentro de tu entorno de desarrollo.
¿Cómo cambiar el context path?
El context path define la ruta base de la aplicación en la URL. Para personalizar este atributo:
Dentro de application.properties, añade la línea:
server.servlet.context-path=/platzimarket/api
Relanza la aplicación y verifica que la URL de acceso refleje estos cambios.
¿Cómo gestionar diferentes perfiles de desarrollo?
SpringBoot facilita la creación de perfiles separados para desarrollo y producción, permitiéndonos adaptar la configuración según el entorno. Para hacerlo:
Crea un nuevo archivo para el entorno de desarrollo:
Nombra el archivo application-dev.properties.
Crea otro archivo para el entorno de producción:
Nombra el archivo application-prd.properties.
En el archivo application.properties, especifica el perfil activo:
spring.profiles.active=dev
Define configuraciones específicas dentro de cada archivo, por ejemplo:
En application-dev.properties:
server.port=8090
En application-prd.properties:
server.port=80
¿Cómo verificar la correcta aplicación de perfiles?
Al relanzar la aplicación, observa en el log que el perfil activo corresponde al configurado (dev o prd). Si el perfil es dev, la aplicación debe ejecutarse en el puerto 8090; si es prd, se ejecutará en el puerto 80.
Animamos a profundizar en los atributos disponibles para modificar, usualmente listados en la documentación de Spring. Este conocimiento te permitirá personalizar SpringBoot con habilidades de gran valor, adaptando proyectos a las necesidades exactas de cualquier entorno. ¡Sigue aprendiendo y adéntrate aún más en el mundo de Java y SpringBoot!
Configuración de Spring Boot con application.properties y perfiles
Si llegan a tener un problema al acceder al recurso localhost:8080/saludo/hola y les aparece lo siguiente:
unicamente cambien localhost por 127.168.0.1
Me ocurrio en KDE Neon.
👍
De los errores tonto que uno aveces tiene, la app no me funcionaba despues de configurar el puerto 8090, resulta que ya habia algo alli funcionando en ese puerto, porfin vi el mensaje que decia "something is already using port 8090", cambie a puerto 8070 y agarro perfectamente.
my flexible, me gustaría saber como se podrían establecer credenciales de producción pero que estas no estén expuestas al desarrollador y que solo el administrador del servidor de producción tenga acceso.
Se me ocurre:
Se podria tener dos ambientes:
Produccion: para administrador de servidor
Desarrollo: para demas desarrolladores
El desarrollador solo pasa el jar o war al administrador para que este le haga el cambio a las propiedades a produccion asi ejecutandolo en el ambiente de produccion. El jar se puede abrir con winrar o zip para editar las propiedades.
Interesante curso, estoy entendiendo todo con claridad.
x2
No me reconoce el "server.port" cuando lo pongo en uno de los perfiles, solo si lo pongo en el application.properties
Me pasa lo mismo, alguien ya lo pudo resolver ?
Posiblemente les pase lo que a mi, escribí mal el nombre de los entornos en vez de "application-dev.properties" escribí "aplication-dev.properties" , al cambiar esos datos me tomo los valores seteados
Que nivel se debe poner en produccion?: logging.level.org.springframework =
OFF << FATAL << ERROR << WARN << INFO << DEBUG << TRACE << ALL.
Esto para que el log de producción solo
muestre lo necesario.
A mi en lo personal me gusta usar
logging.level.org.springframework=INFO
Hasta el momento super bien y claro, estoy muy emocionado por seguir adelante con este curso.
x2
A alguien le salio este error:
Execution failed for task ':MarketApplication.main()'.
Process 'command 'C:/Program Files/AdoptOpenJDK/jdk-11.0.8.10-hotspot/bin/java.exe'' finished with non-zero exit value 1
Ese apenas es el mensaje de que ocurrió un error en tu aplicación. Para ver toda la traza del error debes darle click al proceso principal (que aparece de primero) en el área de "run".
Tu error está en el archivo application.properties, tienes un punto y coma ( ; ) al final del puerto
server.port=8090;
y debe ser simplemente:
server.port=8090
Muchas gracias, problema solucionado.
Un dato interesante es que si ponemos 0 se asignara automáticamente un puerto libre.
Me funcionó muy bien
menos lo de los perfiles
ya vi que me faltaba la 's' en profiles
El profe menciona algo muy interesantes y es programación reactiva, que chévere que se diera un curso sobre esto, en base a este proyecto, usando r2dbc y/o alguna base de datos de AWS, seria interesante ver los cambios java 11 vs java 17.