Spring 框架核心功能全解
Spring 是 Java 企业开发中最重要的生态框架之一,它提供了一整套轻量级、模块化、解耦合的架构体系,帮助开发者高效构建高可维护性、高扩展性、高性能的应用系统。
一、 核心容器(Core Container)
Spring 的一切都始于其IoC 容器,这是 Spring 最核心的部分。
1. IoC : Inversion of Control(控制反转)
-
作用:将对象的创建和依赖管理交给 Spring 容器,而不是手动 new。
-
实现方式:通过 XML 配置、注解(如
@Component
,@Autowired
)、Java Config。 -
好处:解耦,降低模块之间的依赖,便于测试和扩展。
2. Bean 生命周期管理
-
Spring 会自动完成 Bean 的实例化、初始化、销毁等过程。
-
支持作用域(singleton、prototype)与自定义生命周期回调。
二、AOP: Aspect-Oriented Programming(面向切面编程)
1. 什么是 AOP?
-
AOP 是用来处理横切关注点(如日志、事务、安全)的技术。
-
典型应用:记录日志、统一异常处理、权限控制、方法拦截等。
2. Spring AOP 特点
-
基于代理实现(JDK 动态代理、CGLIB 字节码增强)。
-
常用注解:
-
@Aspect
,@Before
,@After
,@Around
,@Pointcut
-
三、 数据访问(DAO 层)
Spring 简化了数据访问层的开发,支持 JDBC、JPA、Hibernate、MyBatis 等。
1. JdbcTemplate
-
简化 JDBC 操作,封装连接获取、异常处理、结果映射等。
-
避免了样板代码。
2. Spring Data
-
提供统一的数据访问抽象,如 Spring Data JPA、MongoDB、Redis 等。
-
通过接口方法命名即可自动生成 SQL 查询。
四、事务管理(Transaction Management)
Spring 提供声明式和编程式事务控制。
1. 声明式事务(推荐)
-
使用
@Transactional
注解控制事务边界。 -
支持传播行为(Propagation)、隔离级别(Isolation)等高级配置。
2. 编程式事务(少用)
-
使用
TransactionTemplate
手动管理事务逻辑。
五、Spring Web 模块(MVC & WebFlux)
1. Spring MVC(传统 Web)
-
基于 Servlet API,支持 RESTful API 构建。
-
注解驱动开发(
@RestController
,@RequestMapping
)。 -
支持参数绑定、数据校验、拦截器、视图解析器等。
2. Spring WebFlux(响应式 Web)
-
基于 Reactor,适用于高并发、非阻塞场景。
-
使用
Mono
和Flux
表达异步流。 -
控制器采用
@RestController + WebClient
等响应式组件。
六、🔗 Spring Security(安全框架)
功能亮点:
-
登录认证、权限控制
-
防止 CSRF/XSS 攻击
-
支持 JWT、OAuth2、SSO 等现代安全协议
七、测试支持
Spring 提供丰富的测试支持:
-
@SpringBootTest
,@WebMvcTest
,@DataJpaTest
-
支持模拟 Bean、MockMVC、事务回滚等
-
与 JUnit、Mockito 无缝集成
总结:Spring 核心功能一览表
功能模块 | 作用简介 |
---|---|
IoC 容器 | 管理 Bean 生命周期与依赖注入 |
AOP | 抽离横切逻辑,如日志/权限/监控 |
数据访问 | 简化 JDBC/JPA/MyBatis 使用 |
事务管理 | 控制数据一致性与事务边界 |
Web MVC/WebFlux | 构建同步/响应式 Web 应用 |
安全模块 | 实现登录、权限、OAuth2 认证等 |
测试支持 | 提供自动化测试工具集成与注解 |