Como vimos en Pasos para Crear un Microservicio con Spring Boot en Eclipse. Cuando se crea un proyecto Spring Boot, también se crea una clase main decorada con @SpringBootApplication. Hay muchas actividades que suceden al ejecutar esta clase, por ahora, vamos a detallar dos que juntas consiguen configurar nuestra aplicación de forma automática.

La primera actividad tiene que ver con la lectura de archivos de propiedades desde 17 ubicaciones, entre las cuales se cuenta src/main/resources donde se ubica el application.properties (o .yml). Una mayor información sobre el resto de ubicaciones las podemos encontrar en https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config.

La segunda actividad tiene que ver con tratar de configurar las dependencias del proyecto con una serie de valores por default establecidos en propiedades comunes, las cuales se encuentran almacenadas en la librería spring-boot-autoconfigure-version.jar. Los valores de las propiedades comunes se pueden sobre-escribir en el archivo application.properties o application.yml, situación que tiene en cuenta Spring Boot cuando configura las dependencias.

En resumen, Spring Boot auto-configura las dependencias del proyecto teniendo en cuenta propiedades comunes previamente almacenadas, pero también nos da la posibilidad de cambiar fácilmente el valor de estas propiedades en el archivo application.properties.

¿Qué pasa si Spring Boot no encuentra propiedades comunes para configurar dependencias?, simplemente no las configura. Sin embargo, Spring Boot nos permite crear propiedades personalizadas con ayuda de los decoradores @Configuration y @ConfigurationProperties, como se describe en Configuración de Propiedades Personalizadas en Spring Boot.

Propiedades Comunes

Como arriba mencionamos, Spring Boot nos presenta una lista de propiedades comunes que podemos especificar dentro del archivo application.properties o application.yml. Estas propiedades se encuentran organizadas por grupos para una fácil referencia, entre otros tenemos los siguientes:

1. Core properties
2. Cache properties
3. Mail properties
4. JSON properties
5. Data properties
6. Transaction properties
7. Data migration properties
8. Integration properties
9. Web properties
10. Templating properties
11. Server properties

La lista completa de propiedades comunes esta publicada en el sitio de referencia de Spring Boot, que podemos consultar en el siguiente enlace: https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#core-properties

A modo de ejemplo, vamos a sobre-escribir la propiedad común server.port que por default Spring Boot asigna con el valor 8080. Nosotros vamos a cambiarle a 8081, este es el puerto donde responderá Tomcat, que es el servidor empaquetado por defecto en Spring Boot. Como podemos observar en la imagen esta propiedad la encontramos en el grupo server properties:

Cambiarla es tan fácil como digitar lo siguiente en el archivo application.properties:

server.port=8081

O su equivalente en el archivo application.yml

server:
   port: 8081

Si re-iniciamos nuestra aplicación, la consola nos confirma que ahora responde por el puerto 8081.

Finalmente, a esta altura, podemos decir que tenemos suficiente información de lo que hace Spring Boot para auto-configurar un proyecto, y también conocemos como cambiar los valores de las configuraciones asignadas por default en este proceso.

Giovanny Rey Cediel
Última modificación: junio 4, 2020

Comentarios

Comenta o responde a los comentarios

Tu dirección de correo no será publicada.

33 + = forty three