7.3.1: 理解依赖注入

前端之家收集整理的这篇文章主要介绍了7.3.1: 理解依赖注入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

纵观所有的Java应用,它们都是一种典型的依赖型应用,也就是由一些互相协作的对象构成的。Spring把这种互相协作的关系称为依赖关系。譬如A组件调用了B组件的方法,我们可称A组件依赖于B组件。@H_301_5@

使用依赖注入,不仅可以为Bean注入普通的属性值,还可以注入其他Bean的引用。通过这种依赖注入,JavaEE应用中的各种组件不需要以硬编码方式耦合在一起,甚至无须使用工厂模式。依赖注入达到的效果,非常类似于传说中的共产主义,当某个Java实例需要其他Java实例时,系统自动提供所需要的实例,无须程序显式获取。@H_301_5@

可见依赖注入是目前最优秀的解耦方式。依赖注入让Spring的Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起。@H_301_5@

Spring极好地利用了依赖注入,但是Spring既不是依赖注入的首创者,也不是依赖注入容器的唯一选择。例如HiveMind,它也是一个开源的依赖注入容器。
@H_301_5@

理解依赖注入:@H_301_5@

虽然Spring并不是依赖注入的首创者,但Johnson是第一个高度重视以配置文件来管理Java实例的协作关系的人,它给这种方式起了一个名字:控制反转(IOC,Inversion of Control)。但这个名称极其晦涩,在后来的日子里,Martine Fowler为这种方式起了另一个相对简单的称呼:依赖注入(DI,Dependency Injection)。所以依赖注入和控制反转是一个意思。不管是依赖注入还是控制反转,都说明Spring采用动态、灵活的方式来管理各种对象。对象和对象之间的具体实现互相透明。@H_301_5@

总结:所谓依赖注入,是指程序运行过程中,如果需要另一个对象协作(调用它的方法,访问它的属性)时,无须在代码中创建被调用者,而是依赖于外部容器的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理。@H_301_5@

依赖注入通常有如下两种:@H_301_5@

@H_301_5@

设值注入 IOC容器使用属性的setter方法来注入被依赖的实例
构造注入 IOC容器使用构造器来注入被依赖的实例

猜你在找的设计模式相关文章