第三节:如何理解Spring的两个特性IOC和AOP(Spring boot 3.x)
IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架的两个核心特性。
IOC:
控制反转是一种软件设计模式,用来减少程序代码之间的耦合。在传统的程序设计中,我们通常会在对象内部直接控制其依赖对象的创建,这样会导致高耦合。IOC则是通过一个容器来管理对象的生命周期和依赖关系,将对象的控制权交给容器,由容器进行注入依赖,实现了松耦合。
AOP:
面向切面编程是一种编程范式,用于将横切关注点与业务逻辑分离。AOP可以让开发者在不修改原始代码的情况下,动态的添加额外的功能,如事务管理、日志记录、权限校验等。
简单例子:
IOC:
// 传统方式
public class UserService {
private UserDao userDao = new UserDaoImpl();
// ...
}
// IOC方式
public class UserService {
private UserDao userDao;
public UserService(UserDao userDao) {
this.userDao = userDao;
}
// ...
}
AOP:
// 定义一个日志切面
@Aspect
public class LogAspect {
@Before("execution(* com.example.service.*.*(..))")
public void beforeMethod(JoinPoint joinPoint) {
System.out.println("Before method: " + joinPoint.getSignature().getName());
}
// ...
}
在Spring框架中,IOC是通过依赖注入(DI,Dependency Injection)实现的,而AOP是通过Spring AOP模块或AspectJ实现的。
评论已关闭