所谓依赖注入,就是由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中!!!这句话求解释
我觉得是有两个知识点的不理解,造成了对这句话不理解,第一:容器是什么?可以形象一点的解释一下吗?第二:某种依赖关系注入到对象中,这里的依赖关系指的是什么?注入又是否是指逻辑表示出来这种关系?
我觉得是有两个知识点的不理解,造成了对这句话不理解,第一:容器是什么?可以形象一点的解释一下吗?第二:某种依赖关系注入到对象中,这里的依赖关系指的是什么?注入又是否是指逻辑表示出来这种关系?
2016-04-24
你可以这么想象,容器就是游泳池,对象就是游泳的人, 当你new 出对象时就是允许人进入游泳池。所以你就是游泳池管理员,需要控制游泳的人数,可是如果你做得不称职,随便让人进去游泳池(new 出太多对象,或者很多其它情况。。),这样游泳池的人就可能会太多了,没地方游泳了(内存溢出)。那怎么办,为了更好管理游泳池,你可以把控制权交给被人,让别人帮你管理,这就是IOC-控制反转。由IOC管理的“游泳池”就是IOC容器。
然后依赖关系你可以想象成为游泳学员和教练的关系,学员需要教练的协助才可以活动。从代码上来说就是一个对象(学员)需要引用其它对象(教练)才能执行功能,这就是依赖关系。
注入,你可以想象为帮学员找教练,有时候一个教练可以教多个学员(教练是单例),有时候一个教练只可以教一个学员,如果你处理不当的话,让太多教练进入游泳池,这样可能会导致游泳池太多人。所以Spring,JavaEE等框架会帮你处理这个事,你只要告诉框架有这样的依赖关系或需要就可以了。在代码上,给你引用的对象加上@Autowired (Spring), @EJB(JavaEE),这样框架就会在运行中帮你找到相应的对象而不需要你去管理。
举报