简单解释:
以前我们程序访问类,都是直接通过代码实例化一个类,然后再去调用它的方法。现在不一样了有了控制反转和注入依赖
比如我们已经操作电脑就是打开电脑,然后打开浏览器或者播放器,想让他播放什么片子就可以播放什么片子,打开播放器就相当于实例化类,然后播放具体的电影就调用里面的方法,看到里面的人物就是,实例化调用方法后返回来的结果~
理解了上面的内容,就上实例了,一个简单的IOC(控制反转)实例
public Object getInstance(String className) throws Exception { Object obj = Class.forName(className).newInstance(); Method[] methods = obj.getClass().getMethods(); for (Method method : methods) { if (method.getName().intern() == "setString") { method.invoke(obj, "hello world!"); } } }
看起来是不是不难,其实理解就好不比想的太过复杂,当然现实使用中要加入各种条件限制和配置文件,就慢慢复杂起来,其实复杂的各种关系和条件限制~
说到IOC(控制反转)就肯定得说spring和bean
spring就是实现控制反转的,而实现这些功能就离不开bean(各种类文件和方法的配置文件代码)
spring能够运行就是要根据bean配置文件来指引的
比如bean配置:
<bean id="bean_test" class="cn.qtone.test.HelloWorld"></bean> 相当于: HelloWorld tmp = new HelloWorld();
注入依赖就是通过IOC请求,返回给我们的过程就是注入依赖~
(引用于请叫我红领巾!朋友博客园)
这就是我所领悟的控制反转和注入依赖~