我了解如何,但似乎无法正式塑造定义。春天DI?接口类型?
由于已知的DI可以通过构造函数或setter或接口完成。 我对最新的一种基于界面的DI感到困惑,是否在春季使用?
更新:我在这里给了错误的检查,导致错误的理解。
要解决它:
说我们有setter和在二传手我们注入一些类实现的接口。这是通过setter还是接口认为是DI?
http://martinfowler.com/articles/injection.html#UsingAServiceLocator 本文共分DI上:。
“主要有三种风格的依赖注入我使用他们的名字是构造器注入,Setter注入和接口注入。如果在当前关于Inversion of Control的讨论中,你将会听到这些被称为类型1 IoC(接口注入),类型2 IoC(setter注入)和类型3 IoC(构造函数注入)的讨论。很难记住,这就是为什么我使用了我在这里的名字。“
Else服务定位符模式用于IoC,它是实际使@Autowired成为可能的模式吗? - 也就是说,并非所有的类都需要在xml中声明为DI,因为我们可以将它们声明为@Repository或@Controller,或者如果我记得正确的话,可以再次声明它们。
谢谢,
请与其他DI方法比较,因为现在我更加困惑。我明白了意思,但让我们暂时离开@Autowired。(忘了上下文:组件扫描 - 说我们没有它)请通过setter和接口显示DI之间的差异 - 你可以在setter中设置接口 - 然后通过接口或通过setter调用什么?那么为什么它通过设置器或接口在DI上正式分配。 – Aubergine 2012-02-28 09:19:37
“通过设置者和界面的DI之间的区别” - 苹果和橙子,他们没有任何关系。见上面的编辑。 – pap 2012-02-28 09:29:12
我完全理解你在做什么以及它是如何工作的(我自己实现了,它的工作非常出色)这就是我认为它无法比拟的。但为什么本文的作者将接口注入与setter和构造函数注入一起沿着这条线? – Aubergine 2012-02-28 09:37:09