我有一个关于依赖注入的问题。
我有一堂课,说:
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,我可以在创建会话的类中创建它,并使用 setter 将其设置为 MyClass。
但问题是我真的不想让 MyAnotherClass 创建 MyServiceAPI 并将其注入 MyClass。我希望 MyAnotherClass 不知道 MyServiceAPI 的存在。
有没有办法可以使用像 Guice 或 Spring 这样的依赖注入器来做到这一点?或者只是Java?
非常感谢。