控制反转和依赖注入的关系总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了控制反转和依赖注入的关系总结相关的知识,希望对你有一定的参考价值。

借鉴http://blog.csdn.net/zhoudaxia/article/details/31763677

控制反转:把传统上由程序代码直接操控的对象的调用权交给外部容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”就是组件对象的控制权转移了,从程序代码本身转移到了外部容器。

实现控制反转的两种方式:依赖注入和依赖查找。

依赖注入有四种实现方式:

1.基于接口:实现特定接口以供外部容器注入所依赖类型的对象,接口中定义要注入依赖对象的方法。

2.基于setter方法:实现特定属性的public set方法,来让外部容器调用,以传入所依赖类型的对象。

3.基于构造函数:实现特定参数的构造函数,在新建对象时传入所依赖类型的对象。

4.基于注解:基于Java的注解功能,在私有变量前加“@Autowired"等注解,不需要显式的定义以上三种代码,便可以让外部容器传入对应的对象。该方案相当于定义了public 的set方法,但是因为没有真正的set方法,从而不会为了实现依赖注入导致暴露了不该暴露的接口(因为set方法只想让容器访问来注入而不希望其他依赖此类的对象访问)

以上是关于控制反转和依赖注入的关系总结的主要内容,如果未能解决你的问题,请参考以下文章

c#依赖注入和控制反转的书籍

控制反转,依赖注入

Spring中的IoC(控制反转)具体是什么东西

老王读Spring IoC-5Spring IoC 小结——控制反转依赖注入

“依赖注入”,“控制反转”是指啥?

[Java Web] Spring