1. Spring 简介
Spring 是一个轻量级的 Java 开发框架,最初由 Rod Johnson 在 2003 年发布,旨在简化企业级 Java 应用的开发。Spring 通过提供强大的依赖注入(DI)和面向切面编程(AOP)支持,帮助开发者构建松耦合、高可扩展的应用程序。
Spring 主要包含以下核心模块:
- Spring Core(核心容器):提供 IoC 和 DI 功能。
- Spring AOP(面向切面编程):用于处理横切关注点,如事务管理、日志等。
- Spring Data(数据访问):提供 JDBC、JPA、MyBatis 等持久化技术的集成支持。
- Spring MVC(Web 框架):用于构建 Web 应用。
- Spring Boot(快速开发框架):简化 Spring 配置,提高开发效率。
2. IoC 和 DI 的概念
2.1 IoC(Inversion of Control,控制反转)
IoC 是一种设计思想,主要用于解耦组件之间的依赖关系。传统的 Java 编程中,对象的创建和依赖关系通常由程序员手动管理,而 IoC 则将这种控制权交给 Spring 容器来管理,从而提高代码的可维护性和灵活性。
示例(传统方式):
public class UserService {
private UserRepository userRepository;
public UserService() {
this.userRepository = new UserRepository();
}
}
问题: UserService
直接创建 UserRepository
,两者紧密耦合,若更换 UserRepository
的实现,则需要修改 UserService
代码。
2.2 DI(Dependency Injection,依赖注入)
DI 是实现 IoC 的具体方式,它通过外部注入依赖,而不是在对象内部创建依赖。Spring 通过构造方法、Setter 方法或注解的方式进行依赖注入,使得组件之间更加松耦合。
示例(使用依赖注入):
public