問題タブ [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.
java - Guice を使用したコンストラクター インジェクション
工場を使用しているサンプルコードがいくつかあります。ファクトリを削除してコードをクリーンアップし、代わりに Guice を使用したいと考えています。私はこれをやろうとしましたが、小さな障害にぶつかりました。私は Guice を初めて使用するので、誰かがここで私を助けてくれることを願っています。
既存のクライアント コード (ファクトリを使用):
Guice を使用してリファクタリングする私の試み:
修正した MailClient でMailImpl
オブジェクトを使用してインスタンスを作成するにはどうすればよいですか? config
このように Guice を使用する必要がありますか?
dependency-injection - Guice インジェクターはどこに保管しますか?
あなたのアドバイスは何ですか?
私は自分の解決策に最も適していると感じました-インジェクターとモジュールを列挙型クラスに保持します。利点:
- 一度作成されたインジェクターとモジュール、
- インジェクターは、アプリケーションの実行中に(ブートストラップ時だけでなく)さまざまなクラスから使用できます。
- インジェクターは一か所に保管されており、簡単に見つけることができます。
例:
dependency-injection - インジェクターの注入方法は?
状況: 一部で遅延依存関係のインスタンス化が必要なため、コンストラクターのパラメーターとしてクラスにFooClass
渡します。Injector
しかし、Guice はコア クラス (インジェクター、モジュールなど) をバインドすることを許可していません。解決策は何ですか?
java - Using a URL exclusion pattern / Running App Engine in dev mode with Guice
I'm using GAE and Guice, but I'm running into problems on the dev server. This is my web.xml
Everything works great until I decide to login, at which point it throws up a 404 cause it can't handle pages that start with /_ah
. This means I can't do logins on the dev server or look at the admin console.
Any ideas? I can't find how to add an exclusion filter to the URL matcher, and don't know which servlet GAE uses to serve development login and console :-/
java - すべての具象クラスをインターフェースから継承させるのは間違っていますか?
これは、ZedShawがずっと前に彼のブログで行った特定のコメントへの応答です。
その後、専門家はコメントなしでバベルの塔を実装し、恐ろしく複雑なモック対応テストを実行し、すべての単一クラスにインターフェイスがあることを確認し、すべてのクラスを「Impl」で終了します。これがベストプラクティスだからです。
私はSpringとGoogleGuiceを同等に使用していますが、これらのフレームワークはImpl後置を使用していますが、控えめに使用していることに気づきました。私のコードでは、モックなどが簡単になると言われているので、どこでもインターフェイスを使用しています。この問題を素朴に理解していますか?(おそらく、モックフレームワークは抽象クラスまたはクラスで動作する可能性があります。わかりません。試したことはありません)具体的な実装では、実装名の前にDefaultという単語を付けるSpring規則を選択しました。
この問題のベストプラクティスは何ですか?
UPDATE1いつでも匿名クラスを返すことができるので、メソッドからインターフェイスを返すと便利だと思います。
osgi - Peaberry for Guice はどのような問題を解決しますか?
OSGIがこの質問のおかげで解決した問題を理解しています....
そして、私は Guice が素晴らしいことを確信しているので、"peaberry" として知られる Guice の OSGI 統合が何をするのか興味があります。Maven 3 プレゼンテーションでさえ、どこにでも現れているようです。
java - Guice、JDBC、およびデータベース接続の管理
JDBC を使用して SQL データベースの読み取り/書き込みを行う Guice を学習しながら、サンプル プロジェクトを作成しようとしています。しかし、Spring を何年も使用し、接続処理とトランザクションを抽象化した後、私はそれを概念的に扱うのに苦労しています。
トランザクションを開始および停止し、同じ接続を再利用して同じトランザクションに参加する多数のリポジトリを呼び出すサービスが必要です。私の質問は次のとおりです。
- データソースはどこで作成できますか?
- リポジトリに接続へのアクセスを許可するにはどうすればよいですか? (スレッドローカル?)
- トランザクションを管理する最良の方法 (注釈のインターセプターを作成しますか?)
以下のコードは、Spring でこれを行う方法を示しています。各リポジトリに注入された JdbcOperations は、アクティブなトランザクションに関連付けられた接続にアクセスできます。
トランザクションのインターセプターの作成を示すものを超えて、これをカバーする多くのチュートリアルを見つけることができませんでした。
Spring は私のプロジェクトで非常にうまく機能しているので、引き続き使用することに満足していますが、純粋な Guice と JBBC (JPA/Hibernate/Warp/Spring の再利用なし) でこれを行う方法を知りたいです。
obfuscation - プロガードで難読化した後、googleguiceによるインジェクションは機能しなくなりました
誰かがグーグルのguiceの使用を難読化(特にプロガード)と組み合わせようとしたことがありますか?難読化されたバージョンのコードは、guiceが型パラメーターの欠落について不平を言っているため、googleguiceでは機能しません。この情報は、関連するクラスが難読化から除外されている場合でも、proguardが実行する変換ステップによって消去されるようです。
スタックトレースは次のようになります。
問題を再現しているように見える小さな例を(guiceを使用せずに)作成しようとしました:
このコードをsbfuscatedなしで実行すると、出力は次のようになります。
しかし、プロガードで難読化されたバージョンを実行すると、次のようになります。
これらは、難読化に使用したオプションです。
誰かがこれを解決する方法のアイデアを持っていますか(関連するファイルを別のjarに入れて、それを難読化しないという明白な回避策は別として)?
よろしく、
ステファン
gwt - GWT Acegi 代替
新しいプロジェクトを開始しています。クライアント インターフェイスは GWT (および GXT) に基づいています。事前に決定されているとは言えません。ただし、サーバー側に関しては自由に選択できるので、楽しみながら、その過程で何か新しいことを学ぶことができます。いくつかの要件は次のとおりです。
- サーバーとの交換は JSON を使用して行われます。ほとんどの UI はクライアントの GWT (JS) によって生成されます。そのため、クライアント/サーブの交換は可能な限りデータ交換に限定されます。
- Hibernate はありません (私が接続する独自のデータベースでは実際にはサポートされていません)。過去のプロジェクトでは、人々は JDBC または iBATIS を使用していました
- ある種の IoC (Google に固執するためだけに Guice を考えています)
- LDAP に基づくある種のセキュリティ フレームワーク。以前は Spring セキュリティ (Acegi) を使用していましたが、理想的ではなく、多くのカスタマイズが必要でした。
では、基本的には、実証済みの Spring/Acegi を使い続けるか、Guice に基づいたものを試す必要がありますか? そして、その「何か」はどのようなもので、どの程度成熟しているのか?
dependency-injection - 深いオブジェクト グラフと多くの依存関係を適切に手動で DI する方法
この質問は何らかの方法で尋ねられたと思いますが、まだ理解できていません。
私たちは GWT プロジェクトを行っていますが、私のプロジェクト リーダーは GIN/Guice を DI フレームワークとして使用することを許可していません (新しいプログラマーは理解できないだろうと彼は主張しました)。そのため、DI を手動で実行しようとしています。
現在、深いオブジェクト グラフに問題があります。UI からのオブジェクト階層は次のようになります。
AppPresenter->DashboardPresenter->GadgetPresenter->GadgetConfigPresenter
オブジェクト階層ツリーの下にある GadgetConfigPresenter には、CustomerRepository、ProjectRepository、MandatorRepository などのいくつかの依存関係があります。
したがって、GadgetConfigPresenter を作成する GadgetPresenter も、AppPresenter を作成するアプリのエントリ ポイントまで、これらの依存関係などを持ちます。
- これは、手動 DI が機能するはずの方法ですか?
- これは、必要がない場合でも、起動時にすべての依存関係を作成することを意味しませんか?
- GIN/Guice のような DI フレームワークはここで役に立ちますか?