2016-05-24 8 views
1

私はDropwizardでRESTfulなサービスを開発しています。今私は別の環境(テスト、ステージング、プロダクト)&データセンター(cn、私たち、など)に展開する必要があります。したがって、それは異なる環境/データセンターに対して異なる設定を必要とする。Dropwizardの設定オーバーライド

これは通常どのように処理されますか?私は潜在的に各env/dcに対して1つの設定を持つことができますが、その場合は共通設定の複製がたくさんあります。

私は、基本設定(base.yamlなど)に共通の設定が含まれていることを期待していました。そして、各環境& DCには、カスタム設定でベースyamlを拡張/オーバーライドする1つのconfigがあります。これはDropwizard内で可能ですか?

ありがとうございました!

+0

Dropwizardを吸うと、春のブートを使用して、もっと欲しいものをすべて手に入れることができます。 – Ulises

答えて

1

私はDropWizardにその機能があるとは思わないが、少数のYAMLファイルを作成し、その結果でDropWizardを起動する小さなスクリプトを書くことができる。 Mustacheのような単純なテンプレートエンジンを使用することができます。

config-template.yml

# ... 
server: 
    applicationConnectors: 
    - type: http 
     port: {{PORT}} 

config-parms-us.yml:その後、

--- 
PORT: "8080" 
--- 

と使用:

mustache config-parms-us.yml config-template.yml > config.yml 
java ... server config.yml 
0

私は、これはあなたが探しているものだと思う: https://github.com/constretto/constretto-dropwizard

は、それはあなたがこのような環境固有の設定を持つことができます:

database: # the JDBC URL 
    url: jdbc:oracle:thin:@//oracle-testing:1521/name 
    .staging.url: jdbc:oracle:thin:@//oracle-staging:1521/name 
    .production.url: jdbc:oracle:thin:@//oracle-production:1521/name 

あなたは、特定の環境を使用してアプリケーションを起動したい

-DCONSTRETTO_TAGS=$ENVIRONMENT

0

は、あなたがあなた自身の設定バンドルを作成できますBundleを実装して、独自の構成設定を追加します。

ConfigurationSourceProviderも作成してopen(String path)メソッドをオーバーライドする必要があります。ここでは、コンフィグレーションのベースネームを見つけることができます。

最後に、EnvironmentAwareを実装すると、URLのリストであるすべての設定ファイルを解決できます。また、ロードするデフォルトの名前を設定することもできます。

関連する問題