1. Spring框架概述与IoC核心概念
Spring框架作为Java企业级开发的基石,其核心设计理念是通过控制反转(IoC)和依赖注入(DI)来降低系统复杂度。让我们从一个实际案例开始理解其价值:
假设我们正在开发一个电商系统,传统模式下订单服务需要直接创建支付服务和库存服务实例:
java复制// 传统紧耦合实现
public class OrderService {
private PaymentService payment = new PaymentService();
private InventoryService inventory = new InventoryService();
public void createOrder() {
payment.process();
inventory.update();
}
}
这种实现存在明显问题:① 修改具体实现需要改动业务代码 ② 难以进行单元测试 ③ 依赖关系难以管理。而Spring的解决方案是:
java复制// Spring解耦实现
@Service
public class OrderService {
@Autowired
private PaymentService payment;
@Autowired
private InventoryService inventory;
public void createOrder() {
payment.process();
inventory.update();
}
}
1.1 IoC容器本质解析
Spring容器本质上是一个高级对象工厂+依赖关系管理器,其核心工作流程可分为四个阶段:
- 组件扫描阶段:通过@ComponentScan定位所有需要管理的类
- Bean定义阶段:解析类上的注解生成BeanDefinition
- 实例化阶段:根据BeanDefinition创建对象实例
- 依赖注入阶段:自动装配对象间的依赖关系
关键理解:Spring容器管理的对象称为Bean,这些对象不再由开发者直接new创建,而是由容器统一管理生命周期。这种控制权的转移正是"IoC"的含义。
1.2 注解驱动开发模式
现代Spring应用主要采用注解配置方式,核心注解可分为三类:
| 注解类型 | 代表性注解 | 作用域 |
|---|---|---|
| 声明式注解 | @Controller, @Service | 类级别 |
| 装配注解 | @Autowired, @Resource | 字段/方法级别 |
| 配置注解 | @Configuration, @Bean | 类/方法级别 |
这些注解共同构成了Spring的元数据编程模型,使得配置信息可以直接体现在业务代码中,极大提高了开发效率。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Bean存储机制深度解析
2.1 类注解的语义化设计
Spring提供多种类注解并非技术
