本章系统分析了Spring IoC容器提供的依赖注入类型,包括字段注入、构造器注入和Setter方法注入。我们针对每个注入类型给出了对应的代码示例,并分析了它们的优缺点,给出了使用建议。针对依赖注入这一话题,我们还结合Spring框架讨论了一组最佳实践,分别从Bean的作用域、注解配置、组件扫描以及不同配置的性能角度出发给出了可用于日常开发的使用技巧。
在掌握应用方法的基础上,本章还系统分析了Spring IoC容器的基本实现原理,我们从Bean的注册以及Bean的实例化这两个维度出发详细剖析了Bean的依赖注入的实现过程。在讲解依赖注入的基础上,我们还专门分析了循环依赖问题的产生原因,以及提供了Spring中基于三级缓存结构的解决方案。另外,基于日常开发中所碰到的循环依赖场景,我们还提供了消除循环依赖的三种策略,并基于具体案例给出了这些策略的实现方式。