2017-01-25 14 views
0

ここで何か助けが必要です。私はymlやxmlファイルのような外部設定ファイルを使ってgoogle dagger 2の作業を行うことが可能であるのだろうか?私はdagger 2とsparkjavaを使ってREST APIサービスを構築しています。したがって、埋め込まれた桟橋のためのポートを設定する方法が必要です。Google Dagger 2外部設定

答えて

0

はい、可能です。外部設定ファイルから使用できる内部形式にデータを取得し、その形式を実行時に短剣に提供することで、自分自身を大変なものにする必要があります。

私は同様の質問をしばらくやりましたが、良い答えを得ました。基本的には

  • 適切な内部形式の設定ファイルをお読みください。 Map<String, String>は良い選択です。
  • build()メソッドが呼び出される前に、実行時にモジュールにマップを提供する必要があります。 Daggerは自動生成されたコードを支援します。
  • 設定エントリの場合は、提供されたマップを検索する@Providesメソッドを記述する必要があります。はい、それぞれ。ショートカットはありません。

これは最近のプロジェクトで行っています。定型文はたくさんありますが、その場ではうまく機能します。

詳細は、https://stackoverflow.com/a/18105271/53897の回答を参照してください。

+0

実行時にはなぜですか?ダガー2はコンパイル時にすべてのコードを生成しませんか? – Divers

+0

@Diversはい、ただし、あなたのコードでまだ利用できないデータを扱わなければなりません。コンパイル時にすべてのダガー関連コードを記述する必要がありますが、実行時までは構成ファイルの内容は使用できません。そのため、構成ファイルの内容を(実行時に)モジュールに渡して、その内容のエントリを検索する各構成ファイルエントリのプロバイダを記述する必要があります。 –