私は2つのRunnable
クラスを持っています。SecondProcedure
がFirstProcedure
で作成されたTable
を使って実行されるように、それらの間に依存関係を注入したいと思います。注釈を使ったGuiceメソッドの注入
class FirstProcedure implements Runnable {
private Table composers = new Table();
public void run() {
// populates the composers table
}
public Table getComposers() {
return composers;
}
}
class SecondProcedure implements Runnable {
private Table composers;
public void run() {
// writes the name of each composer to the console
}
public Table setComposers(final Table composers) {
this.composers = composers;
}
}
アイデアは私のメインのクラスで、私は、(それはこの時点で読み込まれることはありませんにもかかわらず、正しく参照する必要があります)、関連するテーブルを注入し、手順の両方をインスタンス間の依存関係をうまくできるということです2つの手順を実行し、正しい順序で実行します。つまり、これらの2つのプロシージャのそれぞれに固有のインスタンスが存在します(ただし、私は意図的にSingleton(anti)パターンを避けて、適切な単体テストを行うことができます)。
Guiceを使ってどうすればいいですか? は、私のようなものでsetComposers
メソッドに注釈を付けることができます:
@InjectTable(procedure=FirstProcedure.class, name="composers")
public Table setComposers(final Table composers) {
this.composers = composers;
}
と表示されたフィールドのクラスと名前に基づいてSecondProcedure
にTable
を結合するGuiceのモジュールがありますか?
bind()
の方法では、このパラダイムに非常に合ったものは表示されません。AbstractModule
です。
(これとは別に、私が代わりに明示的に何とか方法を参照する、フィールドの名前が文字列であることと、この注釈自体の設計にあまりにも熱心ではないよ。)