理解IoC


今天在4S店维修车,闲暇无事,重新翻看了看《Spring in Action》,看了以前忽略的东西,也总结了一些以前没有注意的内容,比如,如何理解IOC模式。

所谓翻转控制,简单的理解就是一个接口的应用,也就是面向接口编程。

A有一个B的引用,而引用的B是一个Interface,在运行时,B的具体实现不是通过A来指定,而是通过外部的C来实现,比如通过setter方法,或者带参数的构造函数。

这也就是有些人叫“注入”的原因,比较形象,将一个具体的B的实现(好比注射器中的药),通过Setter方法或者构造函数注射到别的类(指定其具体实现)中(A)。

注入的动作可以发生在配置文件中(指定Bean的参数,或者构造参数, via xml configuration file),也可以发生在代码中(显式调用setter或者构造函数)。

仔细想想,这个机制其实就是为了代替原来JNDI机制。原来的JNDI是通过一个名字去查询某个具体的实现,你可以不用知道是哪个类实现的,但是这个实现确实在容器启动的时候就固定下来的,不能在运行时改变,而IoC则不同,可以用比JNDI更灵活的方式去实现“延迟实现”。 

你可能感兴趣的:(spring,bean,IOC,action,interface,setter)