MyBatis と Guice によるインジェクションを使用して、Oracle データベースに接続するコマンド ライン インターフェイス アプリケーションを作成しています。
私の質問は、ネストされたクラスの注入です。私のクラス構造はこのように見えます
MyInjector
Main
--Menu1
----Service1
----MenuA
------Service2
--------MenuAB
----------Service1
--Menu2
ここで、ユーザーがログインとパスワードをアプリに入力する必要があります (構成ファイルに入力することはできません)。そのため、Main は MyInjector を初期化し、そこからインジェクター オブジェクトを取得し、それを使用して Menu1 を注入および初期化します。問題は、一度 Menu1 に入ると、MenuA に移動する必要があり、MenuA はサービスを注入する必要があり、これがどれだけ深くなるか誰にもわかりません。
さて、私の最初の考えは、MyInjector をシングルトン クラスにして、必要な場所でそのインスタンスを常に取得し、最初に Main クラスによって作成されたインジェクター フィールドを取得することですが、もっと良い方法があるかどうかちょっと興味があります。
これを行うためのよりGuiceyの方法はありますか?