Spring 的 IOC 和 DI 是什么?

Spring 面试题发布于

一、IOC(控制反转)

对象的创建和依赖管理由容器负责,而不是在代码中 new。控制权从业务代码转移到 Spring 容器。

二、DI(依赖注入)

IOC 的实现方式。容器把对象依赖的其他对象注入进去。

三种注入方式: - 构造器注入:通过构造方法,推荐(依赖不可变、无循环依赖风险)。 - setter 注入:通过 setter 方法,可选依赖。 - 字段注入:@Autowired 直接注字段,简洁但不推荐(测试不便、隐藏依赖)。

三、Bean 生命周期

实例化 → 属性赋值 → 初始化(Aware 接口、BeanPostProcessor 前置、@PostConstruct、InitializingBean、init-method、后置)→ 使用 → 销毁(@PreDestroy、DisposableBean、destroy-method)。