一、Spring 框架核心定位
Spring 是 Java 生态中一站式的企业级应用开发框架,核心目标是简化 Java 开发,解决企业级开发中的复杂性(如对象创建、依赖管理、事务控制、跨环境适配等)。它不是替代 Java EE,而是对 Java EE 技术(如 Servlet、JDBC、JPA 等)进行封装和增强,目前 Spring Framework 6.x 是主流版本,适配 Java 17+,并全面支持模块化、响应式编程。
二、Spring 核心优势(核心设计思想)
- 控制反转(IoC,Inversion of Control)
- 通俗理解:原本由开发者手动 new 对象、管理对象依赖,现在交给 Spring 容器统一管理,开发者只需定义对象,由容器负责创建、组装和销毁。
- 实现方式:依赖注入(DI,Dependency Injection),包括构造器注入、Setter 注入、字段注入(不推荐),核心是解耦,让代码更易测试、维护。
- 面向切面编程(AOP,Aspect-Oriented Programming)
- 核心作用:将日志、事务、权限校验等 "横切逻辑" 与业务逻辑分离,避免代码冗余。比如给所有接口添加统一的日志记录,无需在每个接口方法里写日志代码。
- 关键概念:切面(Aspect)、切点(Pointcut)、通知(Advice,如前置 / 后置 / 异常通知)。
- 轻量级与模块化
- 轻量级:核心包体积小,无侵入式设计,可按需引入模块(如只用到 IoC 就只引入 spring-core),不强制绑定全量功能。
- 模块化:Spring Framework 拆分为核心容器、AOP、数据访问、Web、测试等模块,可灵活组合。
三、Spring 核心组件
| 组件 / 模块 | 核心作用 | 常用类 / 注解 |
|---|---|---|
| Spring Core(核心容器) | 实现 IoC 容器,管理 Bean 的生命周期 | ApplicationContext、@Component、@Autowired |
| Spring Context | 扩展 Core 功能,提供资源加载、国际化、事件发布等 | @Value、Environment |
| Spring AOP | 实现 AOP 编程,支持切面逻辑织入 | @Aspect、@Before、@AfterReturning、@Around |
| Spring JDBC | 封装 JDBC,简化数据库操作,减少样板代码 | JdbcTemplate、NamedParameterJdbcTemplate |
| Spring Transaction | 声明式事务管理,无需手动控制事务提交 / 回滚 | @Transactional |
四、入门级核心代码示例(Spring IoC+DI)
1. 定义 Bean(业务类)
java
运行
// 标记为Spring管理的Bean
@Component
public class UserService {
// 依赖注入(构造器注入,推荐方式)
private final UserDao userDao;
// 构造器注入,Spring会自动匹配并注入UserDao实例
public UserService(UserDao userDao) {
this.userDao = userDao;
}
public void addUser() {
userDao.insertUser();
System.out.println("用户添加成功");
}
}
// 数据访问层Bean
@Component
public class UserDao {
public void insertUser() {
System.out.println("执行数据库插入操作");
}
}
2. 启动 Spring 容器并获取 Bean
java
运行
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class SpringDemo {
public static void main(String[] args) {
// 初始化Spring上下文(基于注解配置)
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext("com.example");
// 从容器中获取UserService实例(无需手动new)
UserService userService = context.getBean(UserService.class);
// 调用业务方法
userService.addUser();
// 关闭容器
context.close();
}
}
输出结果:
plaintext
执行数据库插入操作
用户添加成功
五、Spring 生态延伸
Spring Framework 是基础,在此之上衍生出了更贴合实际开发的生态组件:
- Spring Boot:简化 Spring 应用搭建,自动配置、内嵌服务器、起步依赖,快速开发微服务。
- Spring Cloud:基于 Spring Boot 实现微服务治理(服务注册发现、配置中心、熔断降级等)。
- Spring Security:处理认证、授权、防跨站等安全问题。
总结
- Spring 核心是IoC(依赖注入) 和AOP,核心目标是简化开发、解耦代码。
- Spring Framework 是基础,Spring Boot/Cloud 等是其生态延伸,覆盖从单体到微服务的全场景。
- 开发中核心是通过注解(如 @Component、@Autowired、@Transactional)利用 Spring 容器管理对象和增强功能。