Spring 总结
Spring 总结
Spring-全面详解(学习总结)-CSDN博客
Spring 是一个轻量级的 Java 开发框架,通过 IoC 和 AOP 两大核心特性,简化企业级应用的开发。
- IoC 让你不 new 对象,AOP 让你不写重复代码,Spring 让你专注业务逻辑。
两大核心
| 核心 | 全称 | 解决什么问题 | 核心思想 |
|---|---|---|---|
| IoC | 控制反转 | 对象之间的高耦合问题 | "别找我们,我们找你"——对象不再自己创建依赖,而是由容器注入 |
| AOP | 面向切面编程 | 代码中的重复和污染问题 | "关注点分离"——把日志、事务等通用逻辑抽离成切面 |
IoC 详解
传统方式 vs Spring 方式
// ❌ 传统:自己 new,高耦合
public class UserService {
private UserDao dao = new UserDao(); // 硬编码依赖
}
// ✅ Spring:声明需要,由容器注入
@Service
public class UserService {
@Autowired
private UserDao dao; // Spring 自动注入
}
核心概念
- Bean:由 Spring 容器管理的对象
- 容器:管理所有 Bean 的创建、装配、销毁
- DI(依赖注入):容器把依赖的对象"注入"给当前对象
AOP 详解
传统方式 vs AOP 方式
// ❌ 传统:每个方法都要写重复代码
public void addUser() {
startLog(); openTx(); // 重复1
// 业务逻辑
commitTx(); endLog(); // 重复2
}
// ✅ AOP:业务代码纯净,通用逻辑集中管理
@Around("execution(* com.example.service.*.*(..))")
public Object around(ProceedingJoinPoint pjp) {
startLog(); openTx(); // 只写一次
Object result = pjp.proceed();
commitTx(); endLog();
return result;
}
核心概念
| 概念 | 说明 | 比喻 |
|---|---|---|
| 切面 (Aspect) | 横切关注点的模块化 | 安检流程 |
| 切点 (Pointcut) | 在哪些方法应用 | 哪些入口需要安检 |
| 通知 (Advice) | 在什么时候做什么 | 安检的具体动作 |
| 织入 (Weaving) | 将切面应用到目标 | 安装安检设备 |
Spring Boot
基于Spring框架的、一套极其彻底的“自动化配置”方案和“应用封装”规范。
Spring Boot在“运行时业务逻辑”层面,没有增加革命性的新技术,它依然是Spring。但它从“构建期”到“运行期”之间,创造了一套强大的“自动化配置引擎”和“依赖管理生态”。
这使得使用Spring的体验,从“专家级的手动零件组装”,变成了“普通工程师的整机开机即用”。
| 维度 | 传统Spring(手动配置) | Spring Boot(你的描述) | 更精确的描述 |
|---|---|---|---|
| 技术底层 | Spring容器 | 仍然是Spring容器 | 无变化 |
| 配置方式 | XML / Java Config(手写) | 自动化 + 少量 application.properties |
新增:智能决策层(@Conditional) |
| 依赖引入 | 手动确定几十个jar包的版本 | 只需引入 starter |
新增:生态级版本管理(BOM) |
| 部署方式 | 打成WAR包 -> 部署到Tomcat | 打成FAT JAR -> java -jar |
新增:内嵌服务器技术(Embedded Server) |
| 开发效率 | 低(启动慢,配置多) | 极高 | 质的飞跃 |
浙公网安备 33010602011771号