Maison  >  Article  >  Java  >  Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

WBOY
WBOYavant
2023-05-12 22:13:041535parcourir

    1. Le rôle du fichier de configuration

    Le fichier de configuration est très important, toutes les données importantes dans l'ensemble du projet est Par exemple, configurez dans le fichier de configuration :

    • Informations de connexion à la base de données (paramètres du nom d'utilisateur et du mot de passe) ; 🎜🎜#Port de démarrage du projet ;

    • Informations clés secrètes pour les appels système tiers

    • Oui ; Journaux courants et journaux anormaux pour découvrir et localiser les problèmes (niveau de journalisation et persistance)

    • S'il n'y a pas de fichier de configuration, ces informations ne peuvent pas être configurées ; connecté, le journal ne peut pas être visualisé, etc. Ces problèmes sont très critiques pour le projet Spring Boot, le fichier de configuration est donc particulièrement important !

    • 2. Format du fichier de configuration

    La classification des fichiers de configuration est généralement :

    Fichier de configuration système ( Défini par le système), tel que la chaîne de connexion, les paramètres liés au journal

    • Défini par l'utilisateur ; Il existe deux formats principaux de fichiers de configuration Spring Boot :

    • .properties

    . #

    • sont ces deux formats, et ils doivent être écrits ainsi ici, sinon une erreur sera signalée ( Convention est supérieure à configuration), dans les deux cas, les fichiers de configuration pertinents peuvent être définis. Les deux formats ne sont que des produits d'époques différentes. Les méthodes d'écriture des deux autres formats sont également différentes. Il y aura des introductions pertinentes ci-dessous, et ces deux formats peuvent également. coexistent. Si les deux sont configurés, la configuration ici utilisera la configuration dans les propriétés et ignorera la configuration dans yml. Par conséquent, il n'est pas recommandé d'utiliser les deux formats en même temps dans le même projet !
    • 3. Description du fichier de configuration des propriétés

    • Le fichier de configuration des propriétés est un format de fichier de configuration antérieur et est également le fichier de configuration par défaut pour le projet Spring Boot. une introduction détaillée à la configuration des propriétés. Fichier :

    1.Syntaxe de base des propriétésQuelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    Dans les propriétés, les paires clé-valeur sont principalement utilisées (clé=valeur), similaire à

    Un tel format (n'écrivez pas d'espaces au milieu, et n'écrivez pas d'espaces supplémentaires)

    Si c'est le cas un fichier de configuration personnalisé, il a également un formulaire clé=valeur, et celui-ci doit être écrit par vous-même. Si vous souhaitez lire ce fichier, vous ne pouvez utiliser que la valeur clé que vous avez définie pour obtenir la valeur !

    2. Lire le fichier de configuration

    Ce problème peut également être résolu en utilisant des annotations Ici, l'annotation @Value et le format de ${} peuvent être utilisés pour lire. : Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    @Controller
    public class Test {
        @Value("${server.port}") //读取配置项
        private  String port;
        @ResponseBody  //返回一个非静态页面的数据
        @RequestMapping("/func")  //设置路由地址
        public String  func(){
            return "port: " + port;
        }
    }

    Ensuite, recherchez http://localhost:8080/func à travers la page pour voir le numéro de port lu :

    #🎜🎜 ##🎜🎜 #Vous ne pouvez lire qu'un seul fichier de configuration en utilisant @Value. Si vous souhaitez en lire plusieurs, vous devez écrire quelques balises @Value supplémentaires

    3.properties Inconvénients

    Le les propriétés utilisent le formulaire clé=valeur, et s'il s'agit d'une valeur sous la même clé, vous devez écrire la valeur clé à plusieurs reprises, ce qui est très redondant

    #🎜 🎜#Pour résoudre ce problème, vous devez utiliser le fichier de configuration ymlQuelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    Description du fichier de configuration Four.yml

    #🎜 🎜#yml est un autre format de fichier de configuration, yml est très lisible. et format facile à comprendre utilisé pour exprimer la sérialisation des données. La syntaxe de yml est très similaire à celle des langages de haut niveau, et le plus grand avantage de yml est qu'il peut être utilisé dans des langages tels que python et golang. utilisez yml comme fichier de configuration. Ce qui suit est une introduction détaillée au fichier de configuration yml :

    1 Syntaxe de base de yml

    La syntaxe de base de yml est : clé : valeur. est requis entre la clé et la valeur. Ajoutez des espaces, et les espaces ne peuvent pas être omis. Si vous écrivez la configuration de la base de données de connexion ci-dessus avec une syntaxe telle que

    Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    , ce sera beaucoup plus pratique : # 🎜🎜#

    Supplément : Problèmes concernant les guillemets simples et doubles dans yml : Si des guillemets doubles sont utilisés dans yml, ils seront exécutés selon la sémantique (originale). S'ils ne sont pas ajoutés ou si des guillemets simples sont ajoutés, les caractères spéciaux dans la chaîne seront échappés par défaut, comme le traitement n ->

    2. Lire le fichier de configuration

    La façon de lire le fichier de configuration yml est également la même que celle des propriétés, en utilisant le format de l'annotation @Value plus ${}, ici c'est Plus de démonstration, regardons les différences dans yml !

    3.配置对象

    在yml里面还是可以配置对象的:

    Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    另外也可以使用行内写法:

    Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    而想要读取到这个对象的话就不能再使用@Value注解了,这里需要借助@ConfigurationProperties来读取:

    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    @Data
    @ConfigurationProperties(prefix = "student") //读取配置文件的对象
    @Component
    public class Student {
        private int id;
        private String name;
        private int age;
    }

    然后读取对象,就可以直接进行注入了:

    @Controller
    public class Test {
        @Autowired
        private Student student;
        @ResponseBody
        @RequestMapping("/getstudent")
        public String getStudent(){
            return "student: " + student;
        }
    }

    然后通过浏览器搜索http://localhost:8080/getstudent就可以得到对象内容了:

    Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    4.配置集合

    在yml里面也是可以配置集合的:

    Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    同样行内写法也是可以的:

    Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    而要获取到集合的话,和获取对象是差不多的,也是通过@ConfigurationProperties来获取:

    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    import java.util.List;
    @Data
    @ConfigurationProperties(prefix = "dbtypes")
    @Component
    public class ListConfig {
        private List<String> name;
    }

    读取集合:

    @Controller
    public class Test {
        @Autowired
        private ListConfig listConfig;
        @ResponseBody
        @RequestMapping("/getlist")
        public String getList(){
            return "name:" + listConfig.getName();
        }
    }

    然后通过浏览器搜索http://localhost:8080/getlist就可以得到对象内容了:

    Quelles sont les fonctions et les détails du fichier de configuration Spring Boot ?

    五.properties和yml的区别

    • properties是以key=value的形式配置的键值对类型配置文件,而yml是以key: value的形式配置的键值对类型配置文件;

    • properties是早期且系统默认的配置文件格式,但配置存在一定的冗余数据,而yml可以更好的解决数据冗余问题;

    • yml通用性更好,支持多语言;

    • yml支持更多的数据类型;

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer