Aller au contenu

Obtenir des valeurs définies dans le fichier de propriétés dans Spring

Spring Properties Basics
Auteur
Harpal Singh
Software Engineer
Traduit par
Namastecode
Sommaire

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.

Articles connexes

Configurer le port pour une application Spring Boot
Spring Basics
Retourner des erreurs HTTP 4XX dans une application Spring
Spring HTTP
Configurer un client Web Java pour les requêtes HTTPS
WebClient HTTPS Spring