2016-04-26 10 views
5

私は春には本当に新しいです。私はスプリングブートによって提供される外部設定機能を使用します。それはうまく動作し、いくつかの設定クラスで使用されました。多くの場合、デフォルト値でのみ使用されます。ここでは、私が使った構成プロパティの概要を知りたいと思います。 これは、@Value(...)または@ConfigurationProperties(prefix = ...)で設定されたすべてのプロパティを知る必要があることを意味します。この情報をSpringから取得する方法はありますか?私は反射でこれを行うことができますが、これは最良の方法ではないと私は考えています。Springブートですべての設定プロパティの名前を取得する方法はありますか?

+3

spring-bootのアクチュエータ機能はこれらをエンドポイントの1つとして公開するため、ソースを見てどのように動作しているかを見ることができます。 – cjstehno

+0

ありがとう、ありがとう。私は[configpropsエンドポイント](https://github.com/spring-projects/spring-boot/blob/10012cfddc5479ee9a5cbe98bfe4f76483965bd1/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/)を使用しました。 ConfigurationPropertiesReportEndpoint.java)をテストしますが、 '@ConfigurationProperties(prefix = ...)'で設定されたパブリックメンバーに対してのみ機能します。 – Chris

+0

プロパティとSpringの設定メタデータを公開するサードパーティのSpringアクチュエータエンドポイントを試すことができます。オプションのフィルタリング/包含/除外:https://github.com/ethlo/spring-actuator-addons/tree/master/spring-actuator-config –

答えて

0

STSを使用している場合は、自動完全機能を備えたapplication.propertiesファイル用の特別なエディタがあります。 Eclipseを使用している場合は、設定するクラスに移動して、コード内の@Valueアノテーションを確認する必要があります。

+1

ありがとうございますが、これは私の問題を解決しません。 myselveでプログラムを拡張したり、すべての設定エントリを手作業でプロパティファイルに書き込まなくても、myselveを拡張して他の開発者に渡したいと考えています。このように私は、プログラムが開始された後、デフォルト値を含む全体の構成を新しいプロパティファイルに書き込むことが可能であることを期待していました。 STSエディタを使用することで、私はまだすべての構成プロパティを知っている手で構成を書く必要があります。 – Chris

+0

META-INF/additional-spring-configuration-metadata.jsonというファイルを作成し、次のようなコンテンツを追加できます。 {"properties":[{ "name": "my.att"、 "type" "java.lang.Stringで"、 "説明":追加することができますで がapplication.properties}]} " 'my.att' の説明":STSを使用 my.att = 20 オートコンプリートは、メタデータファイルで提供される説明で利用可能になります。詳細はこちらhttps://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html – Sigrist

+0

プログラムの開発者にとって可能な方法です。しかし、私が望むのは、設定ファイルを削除してプログラムを再起動するだけで、(特別なエディタを持たない)プログラムの使用者がデフォルトの設定を再作成できるようにすることです(現在の設定が壊れている場合など)。ですから、デフォルトの設定ファイルを作成するために必要な情報を上書きして取得できるクラスがあるかどうかを知る必要があります。 – Chris

関連する問題