問題タブ [guice-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3590 参照

java - guice 支援の注入ファクトリにおける一般的な戻り値の型の問題

これまでのところ、私は google guice 2 をうまく使っていました。guice 3.0 に移行している間、支援された注入ファクトリーに問題がありました。次のコードを想定します

インジェクターの作成中に、次の例外が発生します。

guice 2 の支援された注入クリエーターを使用すると、構成が機能します。

これまでに見つけた唯一の回避策は、ファクトリ メソッドの戻り値の型からジェネリック パラメーターを削除することです。

guice 3 がファクトリ メソッドのジェネリック パラメータを好まない理由や、支援された注入ファクトリについて私が一般的に誤解していることを知っている人はいますか? ありがとう!

0 投票する
1 に答える
467 参照

maven - maven 中央リポジトリから guice3.0 アーティファクトをダウンロードする

struts2 Web アプリを guice2.0 から guice3.0 にアップグレードしようとしています。Maven jettyを使用してテストしようとしています。3.0 リリースの正しいバージョンと groupId を使用するように pom.xml を正常にアップグレードしましたが、mvn jetty:run を呼び出すと、guice-3.0-no_deps.jar をダウンロードしようとしていることがわかります。

ビルド エラーがスローされ、中央リポジトリが見つかりませんか?

Guice 拡張機能を含めないと、このエラーは発生しません。

何か案は?

ありがとう

0 投票する
1 に答える
4203 参照

guice - Guiceのモジュールの初期化および破棄ハンドラ?

次のリンクでは、サービス インターフェイスと start() および stop() メソッドを使用して、Guice でモジュールの初期化と破棄を処理する方法について説明します。

http://code.google.com/p/google-guice/wiki/ModulesShouldBeFastAndSideEffectFree

ドキュメントでは、サービスの作成はクライアント コードでは次のようになると説明されています。

ただし、Concrete Service クラスのサンプル実装はリストされていません。誰でも私に提供できますか?少なくとも start() と stop() に含まれるもののサンプル実装。

0 投票する
2 に答える
1233 参照

guice - クラスの注釈に基づいてコンストラクター引数をバインドする

インターフェイスがあります: InterfaceA

クラスがあります: ConcreteA

@AnnotA@AnnotBという 2 つの注釈もあります。

私は次のバインディングを行いました:

次に、クラス ConcreteA には、 hostNameStringという引数を取るコンストラクターがあります。

以下を記述するコードが必要です。

ConcretaA が @AnnotA を使用している場合、hostName を 'localhost' の文字列値でバインドします

ConcreteA が @AnnotB を使用している場合、hostName を「externalhost」の文字列値でバインドします

これに対する解決策のアイデアはありますか?

0 投票する
1 に答える
1038 参照

java - 依存性注入の適切な構造 (Guice を使用)

以下に説明する構造を持つシステムの依存性注入を構築するための最良の方法について、いくつかの提案とフィードバックをお願いします。私は Guice を使用しているため、XML を多用する Spring スタイルの構成ではなく、注釈ベースの宣言を中心としたソリューションを好むでしょう。

コンストラクターを介して提供されるBall, Box, and Tube、それぞれが に依存する一連の同様のオブジェクト を考えてみましょう。Logger(これは重要ではないかもしれませんが、4 つのクラスはすべてたまたま、Gang-of-Four ではなくアプリケーションのシングルトンです。)

クラスは、3 つの形状オブジェクトのToyChest作成と管理を担当します。 である形状オブジェクトを作成することを除けば、ToyChestそれ自体は に依存していません。Logger

クラスは、クラスToyChest内のアプリケーション シングルトンとしてインスタンス化されますMain

で形状を構築する最良の方法について混乱していToyChestます。(1) 実装へのバインディングに既にアタッチされている GuiceInjectorインスタンスにアクセスする必要があるか、(2) right にアタッチされた新しいインスタンスを作成する必要があります。ModuleLoggerInjectorModule

@Inject Injector injector(1) は にフィールドを追加することによって実現されますが、実際には直接的な依存関係がないToyChestため、これは奇妙に感じます。インスタンス化する子の依存関係のみです。ToyChest

(2) については、適切な を渡す方法がわかりませんModule

私は正しい軌道に乗っていますか?これを構造化するより良い方法はありますか?

この質問への回答に、インジェクターを直接使用する代わりに a を渡すことが記載されてProviderいますが、それがどのように機能するのかわかりません。

編集:

もっと単純な質問かもしれませんが、Guice を使用する場合、形状オブジェクトを構築する適切な場所はどこでしょうか? ToyChestそれらを使用していくつかの構成を行いますが、他の場所で構築できると思います。 ToyChest(それらを管理するコンテナーとして) ではなくMain、それらを構築するのに適切な場所のように思えます。

0 投票する
1 に答える
40417 参照

java - Guice の AssistedInject の使用方法

https://github.com/google/guice/wiki/AssistedInjectを読みましたが、 AssistedInject 引数の値を渡す方法については述べていません。inspector.getInstance() 呼び出しはどのようになりますか?

0 投票する
1 に答える
527 参照

jersey - ルート以外のリクエスト パスを使用するジャージー、Guice

標準構成で Tomcat 6.0.32 の Guice 3.0 で Jersey 1.11 を使用しています。

そして、単純なリソース クラス:

それを考えると、「/ws/resource」へのアクセスはうまくいくと思います。しかし、実際にはリソースが見つかりません。問題は、リクエスト パスが正しく計算されていないことにあるようです。回避策として、パラメーターPROPERTY_FILTER_CONTEXT_PATH/wsに設定しました。これにより、すべてが機能します。

したがって、私の質問は次のとおりです。

  1. これは本当にバグですか、それとも「機能」ですか?
  2. これに対する別の解決策または回避策はありますか?

参考までに、関連する可能性のある Guice のバグを 1 つ見たことがあります。別のバグにマージされているようですが、適切に修正されているかどうか疑問に思っています (リンク)

0 投票する
1 に答える
319 参照

java - Guice3シングルトンがGAEプロジェクトでインスタンス化されることはありません

私はGuiceを初めて使用し、すでに立ち往生しています:)

GuiceConfig、OfyFactoryのクラスをコピーし、Motomapiaプロジェクト(参照可能)からOfyを少し変更して、サンプルとして使用しました。

GuiceServletContextListenerこのように作成しました

このリスナーをweb.xmlに追加しました

OfyFactoryは次のようになります

OfyにはGuiceアノテーションがまったくありません...

そして最後に、注入されたフィールドを使用しようとしているサーブレットをテストすると、次のようになります

Ofyofyは常にnullです。注入されることはありません。また、OfyFactoryがインスタンス化されることはなく、コンストラクターが呼び出されることもないため、注入されません。

私が間違っていることを指摘していただけませんか?なぜ私のシングルトンは作成されないのですか?

どうもありがとう。

0 投票する
1 に答える
1073 参照

java - 依存関係の履行に使用されていないGuiceバウンドプロバイダー

プロバイダーインジェクションを使用して、事前構成されたオブジェクトをファクトリにインジェクトしようとしています。

インジェクターを使用してMyCacheFactoryインスタンスを取得すると、ログ出力が表示されず、未構成のCacheBuilder<Object, Object>インスタンスが表示されます。私の構成はどれも適用されていません。ブレークポイントを設定すると、プロバイダーが使用されていないことが確認されます。

私はまた@Named("MyCacheBuilder")、適切な部分に適用しようとしました:

このコードを実行しようとすると、次のようになりますCreationException

また、クラス宣言とコンストラクター宣言で生の型参照とジェネリック型参照のさまざまな組み合わせを試しましたが、それ以上の成功はありませんでした。

プロバイダーを作成し、自分から返されたインスタンスをバインドするだけでこれを回避できますがget()、Guiceが私に代わってそれを行うことを期待しています(そして望んでいます)。

私の設定に微妙に(または明らかに)何か問題がありますか?

0 投票する
1 に答える
2666 参照

guice - Guice、TypeLiteralの注入@AssistedInjectを使用する場合

これは機能します:

Guiceは、次の場合に文字列を表すTypeLiteralを自動的に挿入します。

しかし、Assisted Injectで同じことを試みる場合:

私のモジュールは次のようになります:

モジュールのインストール中に例外が発生します:

私が注入しようとしているのは確かにTypeLiteralであり、それを削除すると汎用ファクトリが正常に機能するため、問題が発生します。

それで、私はおそらく今のところ自分の工場を転がすだけですが、これがうまくいくかどうか知りたいですか?FactoryModuleBuilderを少し異なる方法で使用することの問題ですか?