DEV Community

Cover image for Utilizar varios archivos de configuración en Spring
Ciro
Ciro

Posted on

Utilizar varios archivos de configuración en Spring

En anteriores publicaciones vimos cómo agrupar parámetros de configuración mediante el uso de la anotación @ConfigurationProperties con el elemento prefix, así como definir la ruta hasta un archivo de configuración, pero en ocasiones un único archivo de propiedades puede extenderse demasiado por lo que es más conveniente separarlo en varios ficheros.

Podemos por ejemplo organizar los archivos de configuración de la siguiente manera:

// file: resources/admin_cfg.yml
name: "John"

// file: resources/user_cfg.yml
user.firstname: "Ben"
user.lastname: "Stuart"
Enter fullscreen mode Exit fullscreen mode

Ahora podemos crear sus clases de configuración, e indicar la ruta de los archivos utilizando la anotación @PropertySource

@Configuration
@ConfigurationProperties
@PropertySource("classpath:admin_cfg.yml") // <- Indicamos la ruta
data class AdminConfig(
    var name: String = "",
)
Enter fullscreen mode Exit fullscreen mode
@Configuration
@ConfigurationProperties(prefix = "user") // <- Indicamos el prefijo (si fuera necesario)
@PropertySource("classpath:user_cfg.yml") // <- Indicamos la ruta
data class UserConfig(
    var firstname: String = "",
    var lastname: String = "",
)
Enter fullscreen mode Exit fullscreen mode

El acceso a estas propiedades se realiza instanciando la clase de configuración que deseemos, y llamando a la propiedad que nos interese:

@Service
class UsersService(
    val config: UserConfig,
) {
    fun getFullName(): String = "${config.lastname}, ${config.firstname}"
}
Enter fullscreen mode Exit fullscreen mode

Fuente: 24.8 Type-safe Configuration Properties @ Spring Boot Reference Guide

Top comments (0)