一:IOC容器的定义
二:Ioc容器相关含义
许多强大的功能都是由两个或是更多的类通过彼此的合作来实现业务逻辑,这使得每个对象和其他的对象产生依赖或者关联。(也就是对象持有其他对象的引用)。如果这个获取过程要靠自身实现,那么如你所见,这将导致代码高度耦合并且难以测试。
工厂模式只是一定程度上降低了这种代码的耦合性,
IoC模式可以彻底解决这种耦合,它把耦合从代码中移出去,放到统一的XML 文件中,通过一个容器在需要的时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中。这可能就是“依赖注入”说法的来源了。
优点:因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单,只要修改XML就可以了,这样我们甚至可以实现对象的热插拨(象USB)
缺点:1.创建对象的过程变得复杂,对于不习惯这种方式的人,会觉得有些别扭和不直观。
2.对象生成因为是使用反射编程,在效率上有些损耗。但相对于IoC提高的维护性和灵活性来说,这点损耗是微不足道的,除非某对象的生成对效率要求特别高
三:IOC容器实现原理
----->ioc容器实现原理项目图

----->beans.xml对应的java类
【1】一个xml节点在可以映射成一个java类。
beans根节点对应的java类
View Code
bean节点对应的java类
property节点对应的java类
【2】beans.xml的配置内容
【3】BeansFactory工厂类解析beans.xml来实现对象的生成和关系的建立
BeansFactory工厂类
【4】MyAction类,此处省略了接口,和接口实现类的代码(在接口中定义一个方法,实现类实现,并在方法中打印一句话)
MyAction类