タグ付けされた質問 「guice」

5
Guiceでのバインディングのオーバーライド
私はGuiceで遊んだところですが、考えられるユースケースは、テストで単一のバインディングをオーバーライドしたいというものです。すべてが正しく設定されていることを確認し、重複を避けるために、残りの本番レベルのバインディングを使用したいと思います。 次のモジュールがあると想像してください public class ProductionModule implements Module { public void configure(Binder binder) { binder.bind(InterfaceA.class).to(ConcreteA.class); binder.bind(InterfaceB.class).to(ConcreteB.class); binder.bind(InterfaceC.class).to(ConcreteC.class); } } そして、私のテストでは、InterfaceAとInterfaceBをそのままにして、InterfaceCをオーバーライドしたいだけなので、次のようにします。 Module testModule = new Module() { public void configure(Binder binder) { binder.bind(InterfaceC.class).to(MockC.class); } }; Guice.createInjector(new ProductionModule(), testModule); 私も次のことを試しましたが、うまくいきませんでした: Module testModule = new ProductionModule() { public void configure(Binder binder) { super.configure(binder); binder.bind(InterfaceC.class).to(MockC.class); …
138 java  unit-testing  guice 

2
Javaクラスが実装されたインターフェースから注釈を継承しないのはなぜですか?
私はGuiceのAOPを使用していくつかのメソッド呼び出しをインターセプトしています。私のクラスはインターフェースを実装しています。Guiceが適切なメソッドを選択できるように、インターフェースメソッドに注釈を付けたいと思います。Inheritedのjavaドキュメントに記載されているように、アノテーションタイプにInheritedアノテーション実装クラスでアノテーションが付けられていても、アノテーションは継承されません。 また、このメタ注釈は注釈がスーパークラスから継承されるだけであることにも注意してください。実装されたインターフェースの注釈は効果がありません。 これの理由は何でしょうか?オブジェクトのクラスが実行時に実装するすべてのインターフェースを知ることはそれほど難しいことではないので、この決定の背後には十分な理由があるはずです。

6
依存性注入のためのGoogle Guice対PicoContainer
私のチームは依存関係注入フレームワークを調査しており、Google-GuiceとPicoContainerのどちらを使用するかを決定しようとしています。 私たちは私たちのフレームワークでいくつかのものを探しています: 小さなコードフットプリント-小さなコードフットプリントとは、依存関係注入コードをコードベースのいたるところに残したくないということです。将来的にリファクタリングする必要がある場合は、できるだけ簡単にする必要があります。 パフォーマンス-オブジェクトを作成および挿入するときに、各フレームワークにはどのくらいのオーバーヘッドがありますか? 使いやすさ-大きな学習曲線はありますか?単純な機能を実現するためにコードの山を書かなければならないのでしょうか できる限り少ない構成にしたい。 コミュニティの規模-コミュニティが大きいということは、通常、プロジェクトが継続して維持されることを意味します。私たちはフレームワークを使いたくないので、私たち自身のバグを修正する必要があります;)また、途中で私たちが持っている質問は(うまくいけば)フレームワークの開発者/ユーザーコミュニティによって答えられるでしょう。 リストされた基準に対する2つのフレームワークの比較は大歓迎です。2つを比較するのに役立つ個人的な経験も非常に役立ちます。 免責事項:私は依存性注入にかなり慣れていないので、この議論に関係のない質問をした場合、私の初心者には言い訳にはなりません。

2
Guiceのインジェクターから注釈付きインスタンスを取得するにはどうすればよいですか?
モジュールがあるとしましょう: Module extends AbstractModule { @Override protected void configure() { bind(String.class). annotatedWith(Names.named("annotation")). toInstance("DELIRIOUS"); } } モジュールをテストして、クラスとフィールドがなくても、インジェクターから直接値を取得して、String注釈が付けられたフィールドに正しい値を挿入するかどうかを確認したいと思いますNames.named("annotation")。 @Test public void test() { Injector injector = Guice.createInjector(new Module()); // THIS IS NOT GOING TO WORK! String delirious = injector.getInstance(String.class); assertThat(delirious, IsEqual.equalTo("DELIRIOUS"); }

1
GuiceのAssistedInjectの使い方は?
https://github.com/google/guice/wiki/AssistedInjectを読みましたが、AssistedInject引数の値を渡す方法が記載されていません。インジェクター.getInstance()の呼び出しはどのようになりますか?
84 java  guice  guice-3 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.