春のブートアプリケーション設定の質問

user3833308:

私は自分のアプリケーションの構造を以下しています

----
   | 
   |____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からの値のデフォルトセットを割り当てられますし、その後、オーバーライドとして指定しているものは何でもアプリケーション

Mykhailoモスクワ:

あなたはconfigフォルダからルート・パスと設定のconfigフォルダ内の別のapplication.ymlファイルを宣言することができるのsrc /メイン/リソースからデフォルトの負荷application.ymlファイルによって春ブーツはSRC /メイン/リソースから設定を上書きします

コンフィグ位置は逆の順序で検索されます。デフォルトでは、設定された場所は、クラスパスです:/、クラスパス:/設定/ファイル:./、ファイル:./設定/。結果の検索順序は次のとおりであります:

ファイル:./設定/ファイル:./クラスパス:/設定/クラスパス:/

ここでは公式ドキュメントからのリンクは次のとおりです。

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

私はそれが便利だと思います

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=201265&siteId=1