SpringIOC理解-创新互联
Spring IOC 作为 Spring 核心的一部分,其翻译是 Inversion of Control (反转控制)
创新互联自2013年起,先为龙城等服务建站,龙城等地企业,进行企业商务咨询服务。为龙城企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。IOC 容器其核心是将 对象 交给 IOC 容器来管理,这样一来对象的控制权由 开发者 反转到了 IOC 容器。什么是 IOC 容器呢?容器顾名思义是存储东西的器件 ,如一杯水的杯子就是一个容器,C++ STL模板里的队列、栈也是容器,只不过前者是用来存储水这种液体,后者是用来存储基本数据或者数据结构。而 IOC 容器 就是为了 存储 那些控制权被反转的对象。
反转的是什么对象本身不是反转,反转的是对象资源的注入方式,以及对象资源的获取方式 (所以说是控制反转),当然还会有生命周期的一些控制。
对比拿通俗易懂的话来说,以吃饭 (把食物看作对象)为例子,传统方式的获取对象就像是自己在家做饭烹饪,你需要选购食材、加工食材、烹饪 ,最后才能吃到食物,过程是漫长的,麻烦的。而Spring提供的 IOC 控制反转的方式 就是 点外卖 ,相当于有餐厅 这样一个资源中介者 为我们选购食材、加工食材、烹饪,我们只需要坐等美味即可。这是一种资源集中管理的思想。
传统方式:
IOC控制反转:
什么是DI依赖注入Dependency Injection,是控制反转的一种具体实现。我们都知道一个类 (资源)的对象是有属性或者其他的依赖关系的,在传统的创建对象方法中,我们通常使用构造器或者set方法来为对象赋值或建立联系。当将控制权转交给IOC容器后,想要达到同样的目的我们就要进行依赖注入,在Spring中只需要配置好bean就可以指定目标所需要的资源,Spring就会自动为我们注入。虽然看起来很高级,但底层Spring也是使用的set方法和构造器。
谈谈IOC的作用说了这么久IOC,它到底比起传统的方法好在哪呢?传统的创建对象的方式是需要写在一个类里面的,那么这个类就依赖于了另一个类,很明显代码的耦合增加了,如果想要修改所依赖的类就需要去源码重新new一个对象,使用IOC就只需要修改获取资源的类型。
其实IoC对编程带来的大改变不是从代码上,而是从思想上,发生了“主从换位”的变化。应用程序原本是老大,要获取什么资源都是主动出击,但是在IoC/DI思想中,应用程序就变成被动的了,被动的等待IoC容器来创建并注入它所需要的资源了。
IoC很好的体现了面向对象设计法则之一—— 好莱坞法则:“别找我们,我们找你”;即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。
在生活中也是,如果有一个集中管理资源的中介者,能够帮助管理所有资源,那么我们只需要在需要的时后向中介者索取,而不是时刻想着怎么同时管理所有资源。
张开涛Spring ioc 理解
超细致Spring IOC理解
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前文章:SpringIOC理解-创新互联
本文来源:http://ybzwz.com/article/cdjooc.html