• Giovanny Rey Cediel

Auto-Configuración en Spring Boot

Actualizado: ago 1


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 encuentra el archivo 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 el intento de configurar las dependencias del proyecto con una serie de valores por default establecidos en propiedades comunes 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 (o .yml), en caso de querer personalizarlos.

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 también nos permite crear propiedades personalizadas con ayuda de los decoradores @Configuration y @ConfigurationProperties, como se describe en el post Configuración de Propiedades Personalizadas en Spring Boot.


Propiedades Comunes

Como ya 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. En la siguiente lista se muestran algunos:

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 responde por el puerto 8081.


Finalmente, a esta altura, tenemos el suficiente conocimiento 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.


Copyright Giovynet.com 2018 - 2020