spring01-简介
一、什么是 Spring?
Spring 是一个开源的 Java 企业级开发框架,它帮助开发者快速、高效、整洁地构建 Web 应用、微服务和后端系统。
它的核心思想是:
“解耦合” + “高效开发” + “灵活扩展”
Spring 就像是 Java 后端开发的骨架系统,帮你搭好“地基+水电+框架”,你只需要专注写业务逻辑。
二、spring提供了什么?
Spring 本身非常庞大,但核心模块主要包括:
模块名 | 作用 |
---|---|
Spring Core | 提供 IOC 容器(控制反转) |
Spring AOP | 面向切面编程(如日志、权限等) |
Spring MVC | 构建 Web 应用的框架 |
Spring Boot | 简化配置,快速启动 Spring 项目 |
Spring Data | 快速操作数据库 |
Spring Security | 提供权限和认证管理 |
Spring Cloud | 构建分布式系统、微服务架构 |
三、Spring 的两个核心部分:IOC 和 AOP
3-1、IOC(控制反转,Inversion of Control)
-
传统方式下,对象由程序员使用
new
手动创建和管理。 -
在 Spring 中,对象的创建、依赖关系由 Spring 容器统一管理。
把对象的控制权“反转”给 Spring,你只需要声明依赖,Spring 帮你注入。
例子:
@Autowired
UserService userService; // Spring 自动创建并注入
3-2、AOP(面向切面编程,Aspect Oriented Programming)
-
把通用功能(如日志、事务、安全等)从核心业务逻辑中抽离出来。
-
不修改源代码,也能“增强”原有功能,类似于“给代码加外挂”。
横向切入功能,模块之间解耦,比如:方法执行前,自动打印日志、执行后,自动记录性能。
例子:
@Before("execution(* com.example.service.*.*(..))")
public void logBefore(JoinPoint joinPoint) {System.out.println("调用方法前日志记录:" + joinPoint.getSignature().getName());
}
四、Spring 的主要特点
(1)方便解耦,简化开发
-
通过 IOC 管理对象,组件之间只需声明依赖,不再直接
new
对象。 -
降低模块间耦合度,提高系统可维护性和扩展性。
(2)AOP 编程支持
-
可以轻松实现日志、权限校验、事务控制等通用功能的集中管理。
-
不需修改业务类代码,维护更方便。
(3)方便程序测试
-
通过依赖注入(DI),可以轻松替换实际对象为 Mock 对象,便于单元测试。
(4)方便和其他框架整合
-
Spring 可以和 JDBC、Hibernate、MyBatis、Struts、Quartz 等多种第三方框架无缝集成。
-
提供大量预置配置,节省集成时间。
(5)方便进行事务操作
-
提供声明式事务管理(基于注解或配置)。
-
只需一个注解
@Transactional
即可完成事务控制。
例子:
@Transactional
public void transfer(Account from, Account to, double amount) {// 转账逻辑
}
(6)降低 API 开发难度
-
Spring Boot + Spring MVC 提供简洁易用的 REST API 构建方式。
-
使用注解快速开发、简化配置、减少样板代码。
例子:
@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "Hello Spring!";}
}
总结
项 | 内容 |
---|---|
核心机制 | IOC 控制对象创建,AOP 实现功能增强 |
核心优势 | 解耦、简化开发、统一事务管理、易集成 |
五、spring 6 VS spring 5
spring 5.x | spring 6.x | |
JDK版本 | >= 1.8 | >= 17 |
Tomcat版本 | 9.x | 10.x |
Annotation包 | javax.annotation | jakarta.annotation |
Servlet包 | javax.servlet | jakarta.servlet |
JMS包 | javax.jms | jakarta.jms |
JavaMail包 | javax.mail | jakarta.mail |