依存性注入について質問があります。
私はクラスを持っています、言う:
class MyClass {
MyServiceAPI serviceAPI;
public setSession(Session session) {
serviceAPI = new MyServiceAPI(session);
}
....
}
セッションは、実行時にデータベースからロードする別のクラスによって作成されます。
class MyAnotherClass {
Myclass myClass;
@Inject
MyAnotherClass(MyClass myClass) {
this.myClass = myClass;
}
public someFunction() {
String key = <read from database>;
Session session = new Session(key);
myClass.setSession();
......
}
}
説明したように、MyClass インスタンスは MyAnotherClass に注入され、MyClass 内の serviceAPI インスタンスは new を使用して作成されます。ServiceAPI を MyClass に注入したい場合は、セッションが作成されたクラスでそれを作成し、セッターを使用して MyClass に設定することができます。
しかし、問題は、MyAnotherClass に MyServiceAPI を作成させて MyClass に注入させたくないということです。MyAnotherClass が MyServiceAPI の存在を認識しないようにします。
Guice や Spring などの依存性インジェクターを使用してこれを行う方法はありますか? それとも単にJava?
どうもありがとう。