今日、私はあなたとカスタム構成情報の読み取りを共有しています。最近、ブログを書く計画があります。Springbootには多くの章があると予想されるため、SpringbootとSpringcloudに関する記事を相互に書き留めます。そのため、クラウドの記事は長い間待つ必要があります。これら2つの記事を共有する理由は、主に情報の検索を促進し、友人が使用する便利な役割を果たすことです。
•@Value Tag Reading(アプリケーションのノードをデフォルトで直接読み取ることができます)
•エンティティマッピングapplication.ymlノード
•カスタム構成ファイルのエンティティマップノード
•エンティティは、マルチレベルノードの値をマップします
@valueタグの読み取り(アプリケーションのノード.ymlはデフォルトで直接読むことができます)
まず、デフォルトのapplication.yml構成ファイルで次のノード情報をカスタマイズします。
Shenniu:名前:Shenniu 003
次に、属性値は@valueタグを介して直接取得されます。データをより適切に表示するために、a /conf /nameインターフェイスがインターフェイスで定義されています。
@value( "$ {shenniu.name}")private string name; @getMapping( "/conf/defname")public string getDefName(){return this.name; }実行後、効果は次のとおりです。
エンティティマッピングapplication.ymlノード
デフォルトの構成ファイル値をエンティティクラスにマッピングするには、プロパティ名のプレフィックスを追加する必要があります。もちろん、これはデフォルトのapplication.ymlファイルのプロパティ専用です。
@configuration@configurationproperties(prefix = "shenniu")パブリッククラスShenniuconf {private string name; public string getName(){return name; } public void setName(string name){this.name = name; } private url url; public url geturl(){return url; } public void seturl(url url){this.url = url; }プライベート文字列des; public string getDes(){return des; } public void setdes(string des){this.des = des; } public static class url {private string blogurl; public string getBlogurl(){return blogurl; } public void setblogurl(string blogurl){this.blogurl = blogurl; }}}後のテストの利便性のために、エンティティクラスにいくつかのプロパティを追加しました。 application.ymlを構成するには、@configurationProperties(prefix = "shenniu")タグを追加するだけで、プレフィックスの値はカスタム構成ファイル属性のプレフィックスに対応します。ここで、 /conf /nameインターフェイスが追加されて、マッピングされたオブジェクトの値を出力します。
@autowired private shenniuconf shenniuconf; @getMapping( "/conf/name")public string getname(){return shenniuconf.getname(); }@valuesアノテーションと同じ効果が取得されます。つまり、エンティティと構成ファイルのカスタム属性が正常に一致し、主なエンティティ属性名は構成ファイルノード名と一致する必要があります。
エンティティマップカスタム構成ファイルのノード
Application.ymlのプロパティ値を読み取ることは非常に簡単です。ここのMy.Propertiesなど、独自の構成ファイルをカスタマイズする必要がある場合があり、ファイルコンテンツは次のとおりです。
shenniu.des =私は私の祖国shenniu.url.blogurl = http://www.a.comが大好きです
マッピングエンティティは引き続き上記で使用されていますが、Annotation @PropertySource( "classPath:my.properties")をエンティティに追加してカスタムファイルソースを表す必要があり、プレフィックスもノードプレフィックスを指定する必要があります。次の表示インターフェイスを追加します。
@autowired private shenniuconf shenniuconf; @getMapping( "/conf/des")public string getDes(){return shenniuconf.getDes(); }エンティティは、マルチレベルノードの値をマップします
通常、カスタム構成ノードには階層的な関係があるので、エンティティはどのようにして異なるレベルで属性値を取得できますか?実際、上記のShenniuconfエンティティのURLエンティティクラス属性など、エンティティクラスのクラス階層関係を通じてのみ表現する必要があります。
これがテストインターフェイスです:
@autowired private shenniuconf shenniuconf; @getMapping( "/conf/myconf")public shenniuconf getblogurl(){return shenniuconf; }予期しないことが起こらない場合、次の結果を得ることができます。
gitアドレス:https://github.com/shenniuboxing3 nugetパブリッシングパッケージ:https://www.nuget.org/profiles/shenniuboxing3
要約します
上記は、エディターが紹介したカスタム構成ファイルノードを読み取るスプリングブートの方法です。それがあなたに役立つことを願っています。ご不明な点がございましたら、メッセージを残してください。編集者は時間内に返信します!