問題タブ [guice]
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.
dependency-injection - 2つの異なるコンストラクターがある場合にGuiceを注入するにはどうすればよいですか?
Total Guice noobは、いくつかの記事を読み、紹介ビデオを見ました。それだけです。
これが私が「guicifiy」しようとしている単純化された古いコードです。(私が理解している限り)@inject
2つのコンストラクターのうちの1つにしか注釈を付けられないので、その方法を完全に理解することはできませんか?呼び出し元のクラスはどのようにして一方または他方のインスタンスを作成できますか?それとも、これをどうにかしてリファクタリングする必要がありますか?
java - JSR 330 と Guice の相互運用性
JSR 330 と Guice の経験がある人はいますか? 私が収集したものから、Guice は JSR 330 の実装ではありませんが、Hibernate や JPA のようなものである場合、実装は API の追加機能をサポートしていません。私はすでに GWT-Dispatch や Warp-persist guice-servet などを使用していますが、JSR 330 をサポートする EJB コンテナーに移行することで何か得られるものはありますか?
dependency-injection - Google Guice の組み込みバインディングはどのように機能しますか?
初めて Google Guice を試してみましたが、とてもいいと思います。しかし、組み込みバインディングの部分に到達すると、例がわかりません。
私にとっては、インターセプターのようにロギングに使用できるように見えますが、方法がわかりません。
誰かがこのタイプのバインディングと、それをどのように使用できるかを説明できますか? そして、おそらく(可能であれば)ログに使用しますか?
google-app-engine - GuiceとJSF2
Guiceを使用してJSFマネージドBeanのプロパティを注入しようとしています。これはすべてGoogleAppEngineで実行されています(重要な場合と重要でない場合があります)
私はここの指示に従いました:
http://code.google.com/docreader/#p=google-guice&s=google-guice&t=GoogleAppEngine
1つの問題は最初のステップにあります。FacesはHttpServletではなくサーブレットをサブクラス化するjavax.faces.webapp.FacesServletによって処理されるため、サーブレットモジュールをサブクラス化してそこにサーブレットマッピングを設定することはできません。そこで、2番目のステップで説明したコンテキストリスナーでインジェクターを作成するときに、サーブレット構成をweb.xmlファイルに残し、ビジネスモジュールとともに新しいServletModel()をインスタンス化してみました。
これらすべてを行った後、web.xml構成とともに、管理対象Beanにプロパティが注入されていません。方法は次のとおりです。
では、GuiceをJSFマネージドBeanに注入するためのトリックがあるかどうか疑問に思っていますか?JSFはBeanを作成するために引数なしのコンストラクターを必要とするため、コンストラクターインジェクションを使用できないことは明らかです。
java - 依存性注入のためのGoogleGuiceとPicoContainer
私のチームは依存性注入フレームワークを研究しており、Google-GuiceとPicoContainerのどちらを使用するかを決定しようとしています。
フレームワークでいくつかのものを探しています。
- 小さなコードフットプリント-小さなコードフットプリントとは、コードベースのいたるところに依存性注入コードを散らかしたくないということです。将来的にリファクタリングする必要がある場合は、可能な限り簡単にする必要があります。
- パフォーマンス-オブジェクトを作成および挿入するときに、各フレームワークにはどのくらいのオーバーヘッドがありますか?
- 使いやすさ-学習曲線は大きいですか?何かを簡単に機能させるには、コードの山を書く必要がありますか?構成をできるだけ少なくしたい。
- コミュニティの規模-コミュニティが大きいということは、通常、プロジェクトが継続して維持されることを意味します。フレームワークを使用したくないので、独自のバグを修正する必要があります;)また、途中で質問があれば、フレームワークの開発者/ユーザーコミュニティが回答できることを願っています。
リストされた基準に対する2つのフレームワークの比較は大いにありがたいです。2つを比較するのに役立つ個人的な経験も非常に役立ちます。
免責事項:私は依存性注入にかなり慣れていないので、この議論に関係のない質問をした場合は、私の初心者を許してください。
java - Guice と JMock を一緒に使用する最良の方法は何ですか?
プロジェクトで依存性注入を行うために Guice を使い始めました。主な理由は、単体テストから離れたレイヤーに (現在 JMock を使用して) モックを注入する必要があるためです。これにより、手動注入が非常に厄介になります。
私の質問は、モックを導入するための最良のアプローチは何ですか? 私が現在持っているのは、依存関係を満たす単体テストで新しいモジュールを作成し、次のようなプロバイダーにバインドすることです。
コンストラクターでモックを渡すため、JMock のセットアップは次のようになります。
より良い方法はありますか?AtUnit がこの問題に対処しようとしていることは知っていますが、上記のようにローカルで作成されたモックを自動的に魔法のように注入する方法がわかりませんが、ここで AtUnit が正しい答えである説得力のある理由 (その他) を探しています。テストを変更せずにDIとモックフレームワークを変更する能力よりも)、または手動で行うためのより良い解決策があるかどうか。
logging - Google Guiceを使用している間、ロギング標準を順守しますか?
LoggerのJavaドキュメントには、ロガー名はクラス名に基づく必要があることが示されています。Google GuiceはこれをBinderImpl.javaで処理し、次のことを行います。
ただし、クラスごとに新しいロガーを取得しているため、ロガーに追加されたハンドラーにアクセスできなくなります。
ロガー内でクラス名を使用することと、ハンドラーの標準セットを適用することの両方を処理するための最良の方法は何ですか?
guice - オブジェクトをインスタンス化した後、initメソッドを呼び出す
指定されたタイプのオブジェクトをインスタンス化した後、Guiceに何らかのメソッド(つまりinit())を呼び出すように指示することは可能ですか?
EJB 3(およびSpring)の@PostConstructアノテーションに似た機能を探しています。
jsf - JSF、aopalliance MethodInterceptor を使用した例外ロギング
Web アプリケーションで他の例外が記録されるのと同じ方法で、JSF ファイルを提供するときにスローされる例外を記録したいと考えています。
ログに記録された例外を持つクラスに注釈を付け@LoggedExceptions
、 aMehtodInterceptor
は Guice AOP を使用してこれらのクラスと照合されます (これは、他の aopalliance の実装でも非常に似ているはずです...)
主な問題は、メソッド インターセプターが機能しないことです。JSF バッキング コードのメソッド呼び出しをインターセプトするにはどうすればよいですか?
java - Javaでの動的プラグインの実装
Javaアプリケーションに動的プラグイン機能を実装したいと思います。理想的には:
- アプリケーションは、の
Plugin
ようなメソッドでインターフェースを定義しますgetCapabilities()
。 - プラグインは、実装
pluginX.jar
するクラス(およびおそらく他のいくつか)を含むJARになります。PluginXImpl
Plugin
- ユーザーは
pluginX.jar
、特別なディレクトリに配置するか、それを指す構成パラメーターを設定します。ユーザーは必ずしもpluginX.jar
クラスパスに含める必要はありません。 - アプリケーションは
PluginXImpl
(おそらくJARマニフェストを介して、おそらくリフレクションによって)それを見つけてレジストリに追加します。 - クライアントは
PluginXImpl
、たとえば、のようなメソッドを呼び出すことによって、のインスタンスを取得できますgetPluginWithCapabilities("X")
。ユーザーは必ずしもプラグインの名前を知っている必要はありません。
ピーベリーでこれができるはずだと思いますが、ドキュメントの意味がわかりません。私はGuiceの学習に時間を費やしてきたので、私の好みの答えは「SpringDynamicModulesを使用する」ではありません。
Guice / peaberry、OSGi、または単なるJavaを使用してこれを行う方法について誰かが私に簡単なアイデアを教えてもらえますか?