Cómo modificar la configuración de una aplicación Spring Boot
Spring Boot sigue el principio de convención sobre la configuración, por lo que crear aplicaciones Spring Boot es muy simple. En el proceso de producción real, necesitamos realizar configuraciones adicionales en el proyecto, entonces, ¿cómo usamos las configuraciones adicionales?
Spring Boot permite el uso de configuración externalizada para que podamos utilizar el mismo código de aplicación en diferentes entornos. Estas configuraciones se pueden externalizar mediante archivos de propiedades, archivos YAML, variables de entorno y argumentos de línea de comandos. Los valores de propiedad se pueden inyectar directamente en el bean usando la anotación @Value, o se puede acceder a ellos a través de la abstracción del entorno de Spring, o vincularlos a objetos estructurados a través de @ConfigurationProperties.
Spring Boot utiliza un orden muy específico de PropertySources, diseñado para permitir una anulación sensata de valores. Las propiedades se consideran en el siguiente orden:
Las propiedades de configuración global de Devtools en su directorio de inicio (~/.spring-boot-devtools.properties cuando devtools está activo).
Anotación @TestPropertySource en pruebas.
@SpringBootTest#properties propiedades anotadas en la prueba.
Propiedades de SPRING_APPLICATION_JSON (JSON en línea incrustado en variables de entorno o propiedades del sistema)
Parámetros iniciales de ServletConfig
Parámetros iniciales de ServletContext
Propiedades JNDI de java:comp/env
Propiedades del sistema Java (System.getProperties()).
Variables de entorno del sistema operativo.
Un RandomValuePropertySource que contiene solo propiedades aleatorias.*.
Propiedades de aplicación específicas del perfil (application-{profile}.properties y variantes YAML) fuera del jar empaquetado
Un RandomValuePropertySource que contiene solo propiedades aleatorias.*. Propiedades de aplicación específicas del perfil empaquetadas en el jar (application-{profile}.properties y variantes YAML)
Propiedades de la aplicación empaquetadas fuera del jar (application.properties y variaciones YAML)).
Propiedades de la aplicación (application.properties y variantes YAML) empaquetadas en un jar.
La anotación @PropertySource en la clase @Configuration.
Propiedades predeterminadas (usando SpringApplication).