[JAVA] Étapes pour rendre Spring Boot capable de faire référence à la valeur dans le fichier de propriétés

introduction

Cette page est principalement destinée à votre propre mémoire.

procédure

Si vous l'écrivez très grossièrement, ce sera dans l'ordre suivant.

    1. Écrivez la valeur que vous souhaitez définir dans le fichier de propriétés
  1. Créer une classe de lecture des paramètres
    1. Utiliser avec Autowired

Fichier de propriétés (application.yml)

Par exemple, si vous avez l'application suivante.yml

ymlSetting:
  stringKey: "Une sorte de chaîne de caractères"
  mapA:
    key1: "value1"
    key2: "value2"

Classe pour lire le fichier de propriétés

Créez une classe pour lire et stocker les valeurs de application.yml. Définissez la clé application.yml sur le préfixe de l'annotation «@ConfigurationProperties». Ensuite, vous pouvez définir que cette classe lira cette définition. (Dans l'exemple, la classe Setting définit que la valeur de paramètre sous ymlSetting est lue.)

Chaque élément défini est stocké en tant que variable membre. L'élément non imbriqué (stringKey) est de type String et Les éléments avec des éléments enfants (mapA) peuvent être déclarés en tant que Maps.

Lors du référencement de la valeur dans le fichier de propriétés, la valeur sera référencée à l'aide du Getter de la variable membre déclarée.

Settings.java

package jp.co.sample;
 
import java.util.Map;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties(prefix = "ymlSetting")
public class Settings {
    private String stringKey;
    private Map<String, String> mapA;
     
    public void setStringKey(String stringKey){
        this.stringKey = stringKey;
    }
     
    public String getStringKey(){
        return stringKey;
    }
     
    public void setMapA(Map<String, String> mapA){
        this.mapA = mapA;
    }
     
    public Map<String, String> getMapA(){
        return mapA;
    }
}

Exemple d'utilisation

Par exemple, lorsque la valeur de la propriété est sortie en standard, elle ressemble à ceci.

SpringBootConfigApplication.java

package jp.co.sample;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
public class SpringBootConfigApplication implements CommandLineRunner{
    @Autowired
    private Setting setting; //Classe de lecture de fichier de propriété
     
  public static void main(String[] args) {
    SpringApplication.run(SpringBootConfigApplication.class, args);
  }
   
  @Override
    public void run(String... args) {
        System.out.println("string = " + Settings.getStringKey());
        System.out.println("key1 = " + Settings.getMapA().get("key1"));
        System.out.println("key2 = " + Settings.getMapA().get("key2"));
    }
}

Recommended Posts

Étapes pour rendre Spring Boot capable de faire référence à la valeur dans le fichier de propriétés
Comment se lier avec un fichier de propriétés dans Spring Boot
[Spring Boot] Comment se référer au fichier de propriétés
Comment définir des variables d'environnement dans le fichier de propriétés de l'application Spring Boot
Découpez SQL en fichier de propriété avec jdbcTemplate of spring boot
Exemple de code pour attribuer une valeur dans le fichier de propriétés à un champ du type attendu
L'histoire de la montée de la série Spring Boot 1.5 à la série 2.1
[Spring Boot] Je veux ajouter mon propre fichier de propriétés et obtenir la valeur avec env.getProperty ().
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
[Spring Boot] Liste des règles de validation qui peuvent être utilisées dans le fichier de propriétés pour les messages d'erreur
Spécifiez le codage des ressources statiques dans Spring Boot
05. J'ai essayé de supprimer la source de Spring Boot
J'ai essayé de réduire la capacité de Spring Boot
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
L'histoire de la montée de Spring Boot de la série 1.5 à la série 2.1 part2
À propos de la fonction de Spring Boot en raison de différentes versions
Mettez le fichier dans les propriétés de string avec la configuration spring xml
Comment spécifier un tableau pour la valeur de retour / l'argument d'une méthode dans le fichier IDL CORBA
Je souhaite contrôler la taille de fichier maximale pour le téléchargement de fichiers pour chaque URL dans Spring Boot
Traitement de branche avec la valeur de retour de RestTemplate et le code d'état de ResponseEntity dans Spring Boot
Il ne répond pas à la description en .js du fichier packs
Obtenez une instance proxy du composant lui-même dans Spring Boot
Fixez le nom du fichier de guerre à celui défini dans Maven
Ce que j'ai fait lors de la migration de la série Spring Boot 1.4 vers la série 2.0
Ce que j'ai fait lors de la migration de la série Spring Boot 1.5 vers la série 2.0
Je veux contrôler le message d'erreur par défaut de Spring Boot
Formulaire qui reçoit la valeur de l'élément répétitif dans Spring MVC
Je veux changer la valeur de l'attribut dans Selenium of Ruby
Comment obtenir la longueur d'un fichier audio avec Java
Comment incrémenter la valeur de Map sur une ligne en Java
Je veux connaître la méthode du contrôleur où l'exception a été levée dans le ExceptionHandler de Spring Boot
Priorité d'accès aux fichiers statiques dans Spring Boot
Mémorandum de téléchargement de fichier local avec Spring Boot
Comment diviser un fichier de message Spring Boot
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
[Spring Boot] J'ai étudié comment implémenter le post-traitement de la demande reçue.
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Exemple de programme qui renvoie la valeur de hachage d'un fichier en Java
Mon mémorandum que je veux faire ValidationMessages.properties UTF8 dans Spring Boot
Comment changer la valeur d'une variable à un point d'arrêt dans intelliJ
J'ai essayé d'utiliser pleinement le cœur du processeur avec Ruby
Développement Android, comment vérifier null dans la valeur de l'objet JSON
Faire une marge à gauche du TextField
Comment réduire l'image de Spring Boot Docker
Comment vérifier la dernière version de io.spring.platform pour l'écriture dans pom.xml de Spring (STS)
Organisez les différences de comportement de @NotBlank, @NotEmpty et @NotNull avec Spring Boot + Thymeleaf
Vérifions la sensation de Spring Boot + Swagger 2.0
Connectez-vous aux applications Web Spring Boot sur la plate-forme Microsoft ID
Comment ajouter un chemin de classe dans Spring Boot
Obtenez le chemin défini dans la classe Controller de Spring Boot sous forme de liste
Faire correspondre le JSON du cas du serpent au champ du cas du chameau en Java (JVM)
Comment créer une combinaison unique de données dans la table intermédiaire des rails
Le nom du fichier joint a été déformé dans le courrier de Spring Boot, donc des contre-mesures
Afficher la tâche Gradle dans le projet Spring Boot
Je veux obtenir la valeur en Ruby
Je souhaite lire le fichier de propriétés avec un nom de fichier autre que application.yml ou application- [nom du profil] .yml avec Spring Boot
Installez plusieurs boutons de soumission dans la vue Rails pour obtenir la valeur du bouton enfoncé
Vérifiez le comportement de getOne, findById et des méthodes de requête avec Spring Boot + Spring Data JPA