我只是用Google Guice进行依赖注入,并开始将它集成到我现有的应用程序中。到现在为止还挺好。除了它们的依赖关系之外,我还有很多类需要Strings,DataSources等等。我知道有NamedBindings,但我真的不想为每个简单的字符串创建一个注释,我必须传递给每个类的构造函数。然后,有一个名为AssistedInject的事情,为我创建Factory实现。哇,但我仍然必须定义工厂的界面。那好了这个例子类,它确实有依赖的类,但什么:Guice的依赖注入:没有被任何教程覆盖的东西
public class FooBarClass {
public FooBarClass(String name, String anotherOne) {
// Some stuff
}
}
有我的疑问如何使用吉斯,或者更一般地说,DI正道案件。 “我经常听到:XYZ Framework是新的新的。”但这暗示我必须创建每个实例与DI框架。
只有一个实例需要
如果我需要这个类的一个实例?这个类在两个字符串旁边绝对没有依赖关系。考虑一下Shutdown Hook,它会被立即执行一次,然后作为Shutdown Hook传递给JVM。我应该用Guice创建这个实例吗?这对我来说看起来很愚蠢,因为没有什么可以注入,但是我必须编写一个工厂接口来传递Guide两个参数,并且必须为我的FooBarClass创建一个接口来使用DI。
多个实例都需要
同样的道理也适用于在那里我需要这个类的多个实例的情况下。没有依赖关系,但我必须创建一堆样板代码才能从中得到任何东西。这对我来说似乎是错误的。
那么,我该如何使用DI和/或Guice?
非常感谢!