1. Introducción
En este tutorial, aprenderemos cómo acceder a los valores definidos en un archivo de propiedades en una aplicación Spring Boot.
Primero, definiremos cómo se configuran las propiedades en una aplicación de Spring Boot. Luego, veremos cómo se pueden leer estas propiedades en tiempo de ejecución en la aplicación.
Tener un archivo de propiedades es la forma más común de externalizar la configuración para una aplicación Spring Boot. Por lo tanto, es una buena manera para nosotros de personalizar el comportamiento de la aplicación sin cambiar el código.
Empecemos.
2. Definiendo Propiedades en Spring Boot
Primero, necesitamos definir algunas propiedades. Spring utiliza una convención para crear un archivo llamado application.properties
dentro de la carpeta de recursos donde escribimos todas las configuraciones. Si estamos utilizando el formato YAML, el archivo se llama application.yml
.
Ahora, supongamos que queremos definir un límite de tasa para las solicitudes de los usuarios. Dentro de nuestro archivo de propiedades, podemos definir una propiedad llamada userRequest.rate_limit
:
userRequest.rate_limit=20
Aquí, definimos un límite de tasa de 20 solicitudes por minuto para la solicitud del usuario. Veamos cómo podemos leer esta propiedad en nuestra aplicación.
3. Accediendo a Propiedades Dentro del Servicio de Spring
Ahora, tenemos un valor para una propiedad personalizada que podemos leer. Para este propósito, podemos usar la anotación @Value
dentro de un servicio de Spring Boot:
@Service
public class UserRequestService {
@Value("${userRequest.rate_limit}")
private String userRequestRateLimit;
// ...
}
En resumen, la anotación @Value
se utiliza para inyectar el valor de una propiedad en un campo en un Spring.
Además, también podemos utilizar la anotación @Value
para inyectar propiedades en los parámetros del constructor o en los parámetros del método:
@Service
public class UserRequestService {
private final String userRequestRateLimit;
@Autowired
public UserRequestService(@Value("${userRequest.rate_limit}") String userRequestRateLimit) {
this.userRequestRateLimit = userRequestRateLimit;
}
// ...
}
4. Estableciendo Valores Predeterminados
A veces, es posible que no queramos obligar a que la propiedad sea definida por el usuario. En tales casos, queremos que la propiedad tenga un valor predeterminado. Para este propósito, podemos utilizar el formato ${property:defaultValue}
para definir el valor predeterminado:
@Value("${userRequest.rate_limit:10}")
private String userRequestRateLimit;
En este caso, no tendremos que establecer un valor dentro del archivo de propiedades. Si la propiedad no está definida, se utilizará el valor predeterminado de 10.
5. Conclusión
En este breve tutorial, aprendimos cómo acceder a los valores definidos en un archivo de propiedades en una aplicación Spring Boot. Primero, definimos una propiedad personalizada y luego utilizamos la anotación @Value
para inyectar los valores de la propiedad en nuestro servicio de Spring. Finalmente, vimos cómo establecer valores predeterminados para las propiedades.