依赖注入和依赖查找都是实现 IoC 的两种常用方法,它们的区别如下。

依赖注入

依赖注入是一种将依赖关系从一个对象传递到另一个对象的技术。在依赖注入中,对象不再负责创建或查找它所依赖的对象,而是将依赖关系委托给 IoC 容器。容器在创建对象时,自动将依赖的对象注入到它所依赖的对象中。

依赖注入的优点是可以减少对象之间的耦合,使代码更加灵活和可维护。在 Spring 框架中,依赖注入通过注解或 XML 配置文件来实现。

依赖查找

依赖查找是一种从 IoC 容器中查找依赖对象的技术。在依赖查找中,对象负责查找它所依赖的对象,而不是将依赖关系委托给容器。容器只负责管理对象的生命周期,而不负责对象之间的依赖关系。

依赖查找的优点是可以更加精细地控制对象之间的依赖关系,但是它也会增加对象之间的耦合度。在 Spring 框架中,依赖查找通过 ApplicationContext 接口的 getBean() 方法来实现。

小结

因此,依赖注入和依赖查找的区别在于,依赖注入是将依赖关系委托给容器,由容器来管理对象之间的依赖关系;而依赖查找是由对象自己来查找它所依赖的对象,容器只负责管理对象的生命周期。

特殊说明

以上内容来自我的《Java 面试突击训练营》,这门课程是有着十几年工作经验(前 360 开发工程师),10 年面试官经验的我,花费 4 年时间打磨完成的一门视频面试课。学完训练营的课程之后,基本可以应对目前市面上绝大部分公司的面试了,并且课程配备了 9 大就业服务,帮助上千人找到 Java 工作,其中上百人拿到大厂 Offer,学员最高薪资 70W 年薪,面试课目录和 9 大服务如下:

加我微信咨询:vipStone【备注:训练营】