DEV Community

Cover image for Cómo crear una clase de configuración en Spring
Ciro
Ciro

Posted on • Edited on

3

Cómo crear una clase de configuración en Spring

Una forma de agrupar parámetros de configuración es mediante la creación de clases y el uso de las anotaciones @Configuration y @ConfigurationProperties

Suponiendo que contamos con el siguiente archivo de configuración:

// application.yml
path: "example path value"
enabled: true
port: 1234
Enter fullscreen mode Exit fullscreen mode

Podemos crear la siguiente clase:

@Configuration
@ConfigurationProperties
data class ExampleConfig(
    val path: String,
    val enabled: Boolean,
    val port: Integer,
)
Enter fullscreen mode Exit fullscreen mode

Una vez hecho esto, podremos instanciar la clase de configuración y acceder así a sus atributos.

@Service
class ExampleService(
    val config: ExampleConfig,
) {
    fun getPort(): String = config.port
}
Enter fullscreen mode Exit fullscreen mode

Agrupar propiedades bajo un prefijo

Para poder organizar de mejor manera los parámetros de configuración, podemos hacer uso de los prefijos dentro de nuestro archivo de propiedades.

Aplicado el ejemplo anterior, podemos anidar todas las propiedades bajo una clave example:

// application.yml
example:
    path: "example path value"
    enabled: true
    port: 1234
Enter fullscreen mode Exit fullscreen mode

Ahora debemos actualizar la anotación @ConfigurationProperties para indicar el prefijo (prefix) bajo el que se encuentran las propiedades.

@Configuration
@ConfigurationProperties(prefix = "example") // <- Establecemos el elemento prefix
data class ExampleConfig(
    val path: String,
    val enabled: Boolean,
    val port: Integer,
)
Enter fullscreen mode Exit fullscreen mode

De esta manera el archivo YAML contendrá una estructura más organizada y podremos identificar rápidamente aquellos parámetros que pertenezcan a un mismo concepto.

Fuente: 24.7.1 Loading YAML @ Spring Boot Reference Guide

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay