私は自分のアプリケーションの構造を以下しています
----
|
|____SpringBootApplicationA
|
|
|___module-1
|___module-2
各モジュールは、例えば、モジュール1は、MySQLへの協議は、それがその構成持っていることをライブラリである、独自の構成を有している(接続文字列、ユーザー名、パスワードを、等...)
今私は、モジュール-1でのJava POJOの形でこの構成を表現したいです。application.yml
構成および設定値を読み取るビーン。
例えば
class Module1Config {
private String key1;
private String key2;
// getters & setters
}
application.yml
モジュール-1で
key1: val1
key2: val2
今モジュール-1の消費者として、SpringBootApplicationA
モジュール-1によってデフォルトとして設定するものであるモジュール-1の設定を受信します。
消費者側では、このようなアプリケーション構成を持っています
someKey1: someVal1
someKey2: someVal2
module-1:
key1: overrideVal1
初期化は、モジュール1の豆の発生したときと、私は値として見られたいです
key1: overrideVal1
key2: val2
デフォルト値を尊重し、それらを無効にする方法を設定スプリングブーツに?
編集します
class AppConfig {
private String key1;
private int key2;
private Module1Config conf;
// getters + setters
}
あなたは、アプリケーションの設定と、それは他のモジュールから活用して、他のコンフィグに、いくつかの特定を持って見ることができるので、これは、私のサンプルアプリケーションの設定です。
私はしたいconf
オブジェクトがモジュール1からの値のデフォルトセットを割り当てられますし、その後、オーバーライドとして指定しているものは何でもアプリケーション
あなたはconfigフォルダからルート・パスと設定のconfigフォルダ内の別のapplication.ymlファイルを宣言することができるのsrc /メイン/リソースからデフォルトの負荷application.ymlファイルによって春ブーツはSRC /メイン/リソースから設定を上書きします
コンフィグ位置は逆の順序で検索されます。デフォルトでは、設定された場所は、クラスパスです:/、クラスパス:/設定/ファイル:./、ファイル:./設定/。結果の検索順序は次のとおりであります:
ファイル:./設定/ファイル:./クラスパス:/設定/クラスパス:/
ここでは公式ドキュメントからのリンクは次のとおりです。
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
私はそれが便利だと思います