1. Introduction
Dans ce tutoriel, nous allons apprendre comment accéder aux valeurs définies dans un fichier de propriétés dans une application Spring Boot.
Tout d’abord, nous allons définir comment les propriétés sont configurées dans une application Spring Boot. Ensuite, nous allons voir comment ces propriétés peuvent être lues à l’exécution dans l’application.
Avoir un fichier de propriétés est le moyen le plus courant d’externaliser la configuration d’une application Spring Boot. Par conséquent, c’est une bonne façon pour nous de personnaliser le comportement de l’application sans modifier le code.
Commençons.
2. Définir des propriétés dans Spring Boot
Tout d’abord, nous devons définir certaines propriétés. Spring utilise une convention qui consiste à créer un fichier nommé application.properties
dans le dossier des ressources où nous écrivons toutes les configurations. Si nous utilisons le format YAML, le fichier s’appelle application.yml
.
Maintenant, supposons que nous souhaitions définir une limite de taux pour les demandes des utilisateurs. Dans notre fichier de propriétés, nous pouvons définir une propriété nommée userRequest.rate_limit
:
userRequest.rate_limit=20
Ici, nous avons défini une limite de taux de 20 requêtes par minute pour la demande de l’utilisateur. Voyons comment nous pouvons lire cette propriété dans notre application.
3. Accéder aux Propriétés Dans un Service Spring
Maintenant, nous avons une valeur pour une propriété personnalisée que nous pouvons lire. À cet effet, nous pouvons utiliser l’annotation @Value
à l’intérieur d’un service Spring Boot :
@Service
public class UserRequestService {
@Value("${userRequest.rate_limit}")
private String userRequestRateLimit;
// ...
}
En résumé, l’annotation @Value
est utilisée pour injecter la valeur d’une propriété dans un champ dans Spring.
De plus, nous pouvons également utiliser l’annotation @Value
pour injecter des propriétés dans les paramètres de constructeur ou les paramètres de méthode :
@Service
public class UserRequestService {
private final String userRequestRateLimit;
@Autowired
public UserRequestService(@Value("${userRequest.rate_limit}") String userRequestRateLimit) {
this.userRequestRateLimit = userRequestRateLimit;
}
// ...
}
4. Définir des Valeurs Par Défaut
Parfois, nous ne voulons peut-être pas imposer que la propriété soit définie par l’utilisateur. Dans de tels cas, nous souhaitons que la propriété ait une valeur par défaut. À cette fin, nous pouvons utiliser le format ${property:defaultValue}
pour définir la valeur par défaut :
@Value("${userRequest.rate_limit:10}")
private String userRequestRateLimit;
Dans ce cas, nous n’aurons pas à définir une valeur dans le fichier de propriétés. Si la propriété n’est pas définie, la valeur par défaut de 10 sera utilisée.
5. Conclusion
Dans ce court tutoriel, nous avons appris comment accéder aux valeurs définies dans un fichier de propriétés dans une application Spring Boot. Tout d’abord, nous avons défini une propriété personnalisée, puis nous avons utilisé l’annotation @Value
pour injecter les valeurs de la propriété dans notre service Spring. Enfin, nous avons vu comment définir des valeurs par défaut pour les propriétés.