1

J'ai utilisé les fichiers application.properties depuis longtemps dans mon application Spring. Mais récemment, je suis tombé sur application.yaml fichiers. Quelle est la ordre de priorité parmi les trois et l'avantage (s'il y en a un) d'utilisation individuelle. Je sais que cela pourrait être une question idiote. mais je suis confus avec leurs usages.Ordre de priorité parmi les fichiers de propriétés, le fichier YAML et les arguments de ligne de commande dans SpringBoot

Répondre

3

La propriété de propriété de résolution de propriété de ressort est décrite here.

L'utilisation de application.propertiesetapplication.yaml n'est pas attendue. Utilisez un format ou l'autre mais pas les deux. Celui que vous utilisez sera traité à la position 12 ou 13 (selon que le fichier est empaqueté dans le JAR applicaiotn ou non) dans l'ordre de priorité des propriétés.

Y compris un extrait du lien ci-dessus ici pour éviter la pourriture du lien ...

Spring Boot utilise un ordre de PropertySource très particulier qui est conçu pour permettre primordial raisonnable des valeurs. Les propriétés sont pris en compte dans l'ordre suivant:

  1. DevTools propriétés globales des paramètres de votre répertoire personnel (~/.spring-boot-devtools.properties lorsque devtools est actif).
  2. Annotations @TestPropertySource sur vos tests.
  3. @ SpringBootTest # attribut d'annotation de propriétés sur vos tests.
  4. Arguments de ligne de commande.
  5. Propriétés de SPRING_APPLICATION_JSON (JSON intégré incorporé dans une variable d'environnement ou une propriété système)
  6. Paramètres d'initialisation ServletConfig.
  7. Paramètres d'initialisation ServletContext.
  8. Attributs JNDI de java: comp/env.
  9. Propriétés système Java (System.getProperties()).
  10. Variables d'environnement du système d'exploitation.
  11. RandomValuePropertySource qui n'a que des propriétés au hasard. *.
  12. propriétés d'application spécifiques à un profil extérieur de votre pot emballé (Application- {} profil .properties et YAML variantes)
  13. propriétés d'application spécifiques à un profil empaquetés dans votre pot (Application- {} profil .properties et variantes YAML)
  14. Propriétés de l'application en dehors de votre fichier jar (applications.properties et variantes YAML).
  15. Propriétés de l'application regroupées dans votre fichier jar (applications.properties et variantes YAML).
  16. @PropertySource annotations sur vos classes @Configuration.
  17. Propriétés par défaut (spécifiées à l'aide de SpringApplication.setDefaultProperties).
+1

Merci @Glitch, vous l'avez clairement fait si clair. C'est vraiment utile. Tu as expliqué plus que ce à quoi je m'attendais. – MAC

+0

@MAC Glad a aidé – glytching

0

En termes simples,

si vous avez YAML et fichier de propriétés à la fois et même clé dans les deux, puis au printemps démarrage regardera d'abord dans les propriétés et si elle est introuvable alors ira à YAML.