問題タブ [scaldi]
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.
scala - Scaldi - 単一/複数のインスタンスへのバインド
最近、SubCut から Scaldi に切り替えましたが、文書化されていない/不足している機能があります。
SubCut では、バインディングを定義するときに、さまざまなバインディング モード( toSingle
、toProvider
、to moduleInstanceOf
、 )から選択できますtoModuleSingle
。これらは、注入されたインスタンスを 1 回作成するか、バインドを実行するたびに作成するかを決定します。Scaldi のドキュメントで明示的に定義されている類似の動作が見当たらないので、Scaldi でさまざまな動作を実現する方法を理解していることを確認したいと思います。
デフォルトでは、to
メソッドは遅延しており、最初に「要求」されたときに注入されたインスタンスを作成します。初めて「リクエスト」される前でも、インスタンスを作成すると思われるAPItoNonLazy
がAPIにあります。そして、次の例では...toProvider
ParticularWidget
...に注入されるたびに新しいを作成しますInjectable
。
私はこれを正しく理解していますか?
scala - Scaldi 依存性注入と Akka アクター
私は現在、Play2.2 アプリケーションで依存性注入に Scaldi を使用することを検討しています。
Scaldi の Web サイトでドキュメントを読みましたが、不明なのは Akka での使用方法です。
私のプロジェクトでこれまでに持っているもの:
UserService.scala では、UserManager のインスタンスを使用して作業を行います。
注入されたマネージャーによっては、アクターがすべての作業をマネージャーに委任した場合、アクターは一種の嘲笑になる可能性がありますか?
しかし、マネージャーが単なるコンパニオン オブジェクトである他のサービスを呼び出す必要がある場合はどうなるでしょうか。それとも、コンパニオン オブジェクトを介して参照される他のサービスを呼び出すサービスですか?
Akka と Scaldi を統合する方法について、何かアドバイスはありますか?
scala - DI (Scaladi / Guice) を使用した Play 2.3 のマネージド コントローラー
時間を割いて、私の現在のプレイの問題を見ていただきありがとうございます。
現在バージョン 2.3 の Playframework をまだ試しています。
現時点では、依存性注入を理解しようとしています。guice と scaladi のアクティベーターで提供されているチュートリアルに従いましたが、常に同じコンパイラ エラーが発生しました。
これは、問題が特定の DI フレームワークに関連付けられていないため、Playframework のより普遍的な部分が欠けていると思います。
それで、私がscaladiで試したことを説明しましょう(guiceを使用した実用的なソリューションも高く評価されます):
conf/routes でルートを定義します。
(Play 2.1 以降でサポートされている管理対象コントローラーのサポートのために @ を追加しました)
コントローラーの定義:
app\Global.scala の下の GlobalSetting を変更するためのグローバルを定義します。
最後に、app\modules\ApplicationModule.scala の下のアプリケーション モジュール:
そのため、Application クラスをパッケージ コントローラー内に配置できなかった理由を理解するための助けをいただければ幸いです。また、guice や scaladi などの実用的なソリューションについても喜んでいます。
ありがとうございました!
編集: 問題は、「/ conf/routes /」の下にも登録された別のルートの2番目のコントローラーでした。このコントローラーはまだ管理されていません。したがって、上記の手順を2番目のコントローラーに適用した後、すべて正常に機能しました.
scala - プロバイダー関数への Scaldi バインディング (注入されたキーと値で引数をマップ)
このリポジトリを Guice から Scaldiに移植しようとしています。私は/app/utils/di/SilhouetteModule.scala (行 60-65)からこのコードにスタックしています:
そして、ここが私が今いる場所です
上記のコードのようにマップを挿入するにはどうすればよいですか?
Scaldi は関数 (Guice の @Provides アノテーションなど) にバインドできますか?
ありがとう
scala - Scala - Option[X] を Option[y] にキャストする方法
私は単純なサービスクラスを持っています
scaldi im を使用して MockItemService を ItemService にバインドし、次のようにアクセスします
私が欲しいのは、アイテムがアイテムではなく機能タイプであることです。機能はアイテムを拡張します。
akka - メッセージは送信者ではなくデッドレターになります (akka ルーター) [scala]
実際、アクター (ルーター) システムを正しく動作させるのに問題があります。私のセットアップ:
Play コントローラー内で akka ルーターを使用しようとしています。依存性注入には scaldi を使用します。
スカルディモジュール:
akka ルーター:
ワーカー:
メッセージ (insertUser メッセージ) をルーターに送信すると、メッセージは正しくルーティングされ、ワーカーはメッセージを受信しますが、ワーカーがメッセージを送信者に送り返すと、配信できないため、デッド レター オフィスに送信されます。これを修正する方法がわかりません。私を助けることができる人はいますか?
前もって感謝します
akka - scaldi で単一のアクター インスタンス (akka ルーター) にバインドできないのはなぜですか?
現在、依存性注入に scaldi を使用して Akka ルーター ロジックを実装するのに苦労しています。私のアクターはルーターであり、そのインスタンスを 1 つだけ持ちたいのに、scaldi を使用して単一のアクター インスタンスにバインドできないのはなぜですか? 私がこの質問をするようになった方法は、別のスタックオーバーフロー エントリでした。
私のスカルディモジュール:
この方法では、1 つのインスタンスのみが作成され、ルーターに複数回注入するとすぐに、sender() メソッドから送信者としてデッド レター アクターが取得されます。
バインディングを次のように変更すると...
...完全に正常に動作しますが、すべての注入はルーターの新しいインスタンスを意味します。私は正しいですか?
では、注入可能なルーターのインスタンスを 1 つだけ持つにはどうすればよいでしょうか?
前もって感謝します
forms - scaldi依存性注入でscalaオブジェクトに注入することは可能ですか?
scaldi依存性注入でscalaオブジェクトに注入することは可能ですか? もしそうなら、どうすればインジェクターを手に入れることができますか?
シングルトンでなければならないSignUpFormオブジェクトがあります...
...そしてオブジェクトの制約
ここに問題があります->ユーザーサービスを注入する必要がありますが、コンストラクター引数として暗黙のインジェクターが渡されない限り注入できません(ここにオブジェクトがあるため、これは不可能です)
...どうすればこの問題を解決できますか?
前もって感謝します