Maison  >  Article  >  Java  >  Bases de l'architecture Java : explication détaillée de la configuration de Spring Cloud YAML et des propriétés

Bases de l'architecture Java : explication détaillée de la configuration de Spring Cloud YAML et des propriétés

php是最好的语言
php是最好的语言original
2018-08-10 14:55:002401parcourir

Répertoire

Explication détaillée de la configuration YAML de Spring Cloud 1

Explication détaillée des propriétés 2

Paramètres personnalisés 2

Référence des paramètres 3

Nombre aléatoire 4

Paramètres externes 4

Configuration d'environnements multiples 5

YAML6

YAML a les règles de base suivantes : 6

Utilisez YAML pour terminer la configuration multi-environnement 7

Dans l'exemple précédent, nous avons utilisé src/main/resources/application.properties pour personnaliser notre projet. Cette méthode de configuration est simple et claire. ce que nous utilisons souvent

Mais en réponse aux besoins métier complexes, la configuration multi-environnement et programmatique ne peut pas être satisfaite

Pour cette raison, Spring Cloud nous fournit une méthode de configuration YAML pour enrichir notre fonction et simplifier notre développement tout en étant capable de distinguer simplement et clairement le contenu de la configuration.

Explication détaillée des propriétés

Paramètres personnalisés

Les paramètres personnalisés nous permettent de définir certains paramètres dans le fichier de configuration pour l'utilisation

dans le programme Nous utilisons ici les annotations Spring pour implémenter cette fonction

Créez d'abord une classe d'entité

@Component

public class Dalao {

@Value("${dalao.name}")

private String name;

@ Value("${dalao.yanzhi}")

private String yanzhi;

…..getter setter omis

@Component annotation :

Instancie un pojo ordinaire dans le conteneur Spring, ce qui équivaut à

dans le fichier de configuration Modifiez application.propertie et ajoutez les paramètres de configuration suivants

dalao.name=mahibing

dalao.yanzhi=100

Utiliser les paramètres personnalisés

Objets gérés par Spring

Laissez Spring injecter des objets. Ce qui doit être noté ici, c'est que si votre nouvel objet n'est pas géré par le conteneur Spring, il ne le sera pas automatiquement. Injectez-nous des valeurs d'attribut

@Autowired

privé Dalao dalao;

Test d'impression

Système .out.println(ToStringBuilder.reflectionToString(dalao));

System.out.println(ToStringBuilder.reflectionToString(new Dalao( )));

ToStringBuilder

ToStringBuilder est utilisé ici pour convertir l'objet en chaîne Pour utiliser cet objet, vous devez introduire la boîte à outils commons de Spring. lang3

Pom

< dependency>

org.apache.commons

commons-lang3

3.7< ;/version>

Référence des paramètres

Les valeurs des paramètres dans application.propertie peuvent se référencer les unes les autres

Modifions la configuration précédente

dalao.name=mashibing

dalao.yanzhi=100

dalao.desc=${dalao.name} est un bon professeur, bing bu shi yin wei ${dalao.name} de yan zhi = ${dalao.yanzhi}

Ajouter

@Value("${dalao. desc}")

privé Chaîne desc;

Résultat de sortie

Nombre aléatoire

Pour certains besoins particuliers, nous ne voulons pas que la valeur de l'attribut soit définie sur une valeur fixe, comme un numéro de port aléatoire du serveur, certains nombres, etc. Nous pouvons utiliser ${radom} pour générer des int, long ou chaîne dans la configuration

${random.int()} = random int

${random.long} = random long

${random. int(50)} = dans les 50 Nombre aléatoire

${random.int(50,100)} = int entre 50 et 100 Nombre aléatoire

${random.value} = chaîne aléatoire

Utilisez

dalao.xiaodi.zhangyang.yanzhi=${random.int(50,100)}

dalao.xiaodi.zhangyang.xinqing =$ {random.value}

Entrée externe

Les outils de déploiement d'exploitation et de maintenance automatiques sont souvent utilisés dans l'architecture de microservices. Utilisez ces outils pour démarrer nos services.

Notre programme de démarrage Spring utilise généralement java –jar pour démarrer et exécuter

Pour le numéro de port du service ou d'autres valeurs qui doivent être déterminées lors du démarrage du service, en cas de codage en dur ou de randomisation dans la configuration ne peut évidemment pas répondre aux besoins

Nous pouvons utiliser des paramètres externes pour remplacer les paramètres personnalisés

Par exemple, déterminer temporairement le port de service :

java -jar demo-0.0.1-SNAPSHOT.jar --server.port=60

L'apparence change en même temps :

java -jar demo -0.0.1-SNAPSHOT.jar --server.port=60 --dalao.xiaodi.zhangyang.yanzhi

L'utilisation d'une méthode de configuration externe nous permet de modifier le port de service et le mot de passe de connexion à la base de données au démarrage du service , valeurs d'attributs personnalisés, etc.

Configuration de plusieurs environnements

Dans le développement réel, notre ensemble de codes peut être déployé sur plusieurs serveurs tels que le développement, les tests et la production en même temps. Des configurations personnalisées telles que les mots de passe de base de données dans chaque environnement sont inévitables, bien que nous puissions utiliser des paramètres externes pour le faire. Remplacez temporairement les valeurs d'attribut lorsque le service est démarré via un déploiement automatisé d'exploitation et de maintenance, mais cela signifie également une augmentation des coûts d'exploitation et de maintenance.

Nous pouvons utiliser plusieurs ensembles de configurations pour éviter de modifier différents attributs de configuration pour différents environnements

Utilisation :

Créez d'abord plusieurs ensembles de fichiers de configuration

Les règles de dénomination sont :

Application-*,properties

Application-dev,properties = environnement de développement

Application-test,properties= environnement de test

Application-test,properties= environnement de test

Application-prod,properties=Environnement de génération

Ensuite, nous définissons le commutateur dans application.properties quel ensemble de configuration prend effet

Utilisez spring.profiles.active=dev

Lors de l'utilisation de java –jar pour démarrer le service, nous pouvons modifier toute la configuration via des paramètres externes

java -jar demo-0.0.1-SNAPSHOT.jar -- spring.profiles.active= test

YAML

YAML est l'abréviation en langue étrangère de "YAML Ain't Markup Language, YAML n'est pas un langage de balisage"

Mais pour soulignez ceci. Le langage est centré sur les données, plutôt que sur le langage de balisage, et est renommé avec des mots de retour aux sources. Il s'agit d'un format de sérialisation de données intuitif qui peut être reconnu par les ordinateurs. C'est un langage de programmation hautement lisible et facile à lire par les humains. Il est facile d'interagir avec les langages de script et est utilisé pour exprimer des séquences de données.

Il s'agit d'un langage de description de données similaire à XML, un sous-ensemble du Standard Universal Markup Language, et sa syntaxe est beaucoup plus simple que XML.

YAML a les règles de base suivantes :

1. Sensible à la casse

2. Utilisez l'indentation pour indiquer les relations hiérarchiques

3. , Il est interdit d'utiliser l'indentation par tabulation, seule la barre d'espace peut être utilisée

4. Il n'y a pas de limite sur la longueur d'indentation Tant que les éléments sont alignés, cela signifie que ces éléments appartiennent au même. niveau.

5. Utilisez # pour indiquer les commentaires

6. Les chaînes peuvent être marquées sans guillemets

Utilisez YAML pour terminer la configuration multi-environnements

Méthode 1 :

Fichier yml unique avec plusieurs fichiers de propriétés

Méthode 2 :

Configurer toutes les variables dans un seul fichier yml

Recommandations associées :

Introduction à la méthode de configuration de modification de configuration du tutoriel Spring Cloud

Spring, Spring MVC, fichiers d'intégration MyBatis Détails de configuration

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn