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