Java アーキテクチャの基礎: Spring Cloud YAML とプロパティ設定の詳細な説明

php是最好的语言
リリース: 2018-08-10 14:55:00
オリジナル
2465 人が閲覧しました

目次

Spring Cloud YAML設定の詳細1

プロパティの詳細2

カスタムパラメータ2

パラメータリファレンス3

乱数4

外部パラメータ4

複数の環境設定5

YAML6

やML には次の基本ルールがあります。 6

YAML を使用してマルチ環境構成を完了します。 7

前の例では、プロジェクトをパーソナライズするために src/main/resources/application.properties を使用しました。 明らかに、この構成方法は単純です。は私たちがよく使うものです

しかし、複雑なビジネスニーズに応えて、マルチ環境やプログラムによる構成には対応できません

このため、Spring Cloud は、機能を強化し、開発を簡素化するための YAML 構成メソッドを提供します。設定内容を簡単かつ明確に区別できます。

プロパティの詳細な説明

カスタムパラメータ

カスタムパラメータを使用すると、プログラムで使用するために構成ファイルにいくつかのパラメータを定義できます

ここではSpringアノテーションを使用してこの機能を実装します

まず最初に、エンティティクラス

@Component

public class Dalao {

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

private String name;

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

private String yanzhi;

…..getter setter 省略

@Component 注:

通常の pojo を Spring コンテナーにインスタンス化します。これは、

application.propertie を変更し、次の設定パラメータを追加します

dalao.name=mashibing

dalao.yanzhi=100

カスタムパラメータを使用します

Spring 管理オブジェクト

Spring にオブジェクトを注入させます。ここで注意する必要があるのは、新しいオブジェクトが Spring コンテナによって管理されていない場合、属性値は自動的に注入されないということです

@Autowired

private ダラオ dalao;

テスト印刷

System.out.println(ToStringBuilder.reflectionToString(dalao));

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

ToString Builder

ToStringBuilder は、オブジェクトの文字列への変換を完了するためにここで使用されます。このオブジェクトを使用するには、Spring のツールキット commons-lang3

Pom

org.apache.commons 7

パラメータ参照

application.propertieのパラメータ値は相互に参照できます前の設定を変更しましょう

dalao.name=mashibing

dalao.yanzhi=100

dalao.desc =${dalao.name} は良い先生です、ビング・ブ・シー・イン・ウェイ ${dalao.name} de yan zhi = ${dalao.yanzhi}

エンティティ

@Value("${dalao) に

を追加します.desc}")

private

String desc;

出力結果

乱数

いくつかの特別なニーズがあります。設定された属性値を固定値にする必要はありません。サーバーのランダムなポート番号、特定の番号などを使用して、構成内で ${radom} を使用してランダムな int、long、または string を生成できます${random.int()} = random int

${random long} = ランダムなlong

${random.int(50)} = 50以内の乱数

${random.int(50,100)} = 50~100の整数の乱数

${random.value }= ランダムな文字列

設定ファイルで使用

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

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

外部参加

マイクロサービス アーキテクチャでは、自動運用およびメンテナンスのデプロイ ツールがよく使用されます。これらのツールを使用してサービスを開始しますSpring ブート プログラムは通常、起動および実行に java -jar を使用します

サービスのポート番号またはその他の値には、サービスの開始時に決定する必要がありますが、設定にハードウェア的に書き込まれたり、ランダムに使用されたりすると、明らかにニーズを満たせません

カスタムパラメータを置き換えるために外部パラメータを使用できます

たとえば、サービスポートは次のとおりです。一時的に決定:

java -jarデモ-0.0.1-SNAPSHOT.jar --server.port=60

同時に外観が変更されます:

java -jarデモ-0.0.1-SNAPSHOT。 jar --server.port=60 --dalao.xiaodi.zhangyang.yanzhi外部構成を使用すると、サービスの開始時にサービスポート、データベース接続パスワード、カスタム属性値などを変更できます

マルチ環境構成

実際の開発では、運用と保守の展開を自動化することはできますが、コードのセットを開発、テスト、運用などの複数のサーバーに同時に展開する場合があり、各環境でのデータベース パスワードなどの個別の構成は避けられません。このメソッドは、サービスの開始時に外部パラメータを使用して属性値を一時的に置き換えますが、これは運用保守コストの増加も意味します。

複数の構成セットを使用することで、環境ごとに異なる構成プロパティを変更することを回避できます

使用方法:

まず複数の構成ファイルのセットを作成します

命名規則は次のとおりです:

Application-*,properties

Application- dev,properties=開発環境

Application-test,properties=テスト環境

Application-prod,properties=生成環境

次に、一連の設定が有効になるapplication.propertiesのスイッチを設定します

spring.profilesを使用します。 active=dev

java –jar を使用してサービスを開始する場合、外部パラメーターを使用して構成全体を変更できます

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

YAML

YAML は、「YAML Ain't Markup Language YAML はマークアップ言語ではありません」の外国語の略語です

ただし、この言語がマークアップ言語に焦点を当てているのではなく、データ中心であることを強調するには、Return to the元の単語を削除し、名前を変更します。コンピュータが認識できる直感的なデータシリアル化形式であり、可読性が高く、スクリプト言語との対話が容易であり、データシーケンスを表現するために使用されます。

これは、標準ユニバーサル マークアップ言語のサブセットである XML に似たデータ記述言語であり、その構文は XML よりもはるかに単純です。

YAML には次の基本ルールがあります:

1. 大文字と小文字を区別します

2. 階層関係を示すためにインデントを使用します

3. タブインデントの使用は禁止されています。使用できるのはスペースバーのみです

4.インデントの長さの制限はありません。要素が整列している限り、これらの要素は同じレベルに属していることを意味します。

5. コメントを示すには # を使用します

6. 文字列は引用符なしでマークできます

YAML を使用して複数の環境設定を完了します

方法 1:

複数のプロパティ ファイルを含む単一の yml ファイルを使用します

方法 2:

単一の yml ファイルですべての変数を構成する

関連する推奨事項:


Spring Cloud チュートリアルの構成変更構成方法の紹介

Spring、Spring MVC、MyBatis 統合ファイル構成の詳細な説明

以上がJava アーキテクチャの基礎: Spring Cloud YAML とプロパティ設定の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート