简单描述一下Spring的IOC与AOP

✅ 一、什么是 IoC(控制反转)?

定义
IoC 是一种对象创建和依赖关系由 容器控制 的思想,开发者不再手动 new 对象,而是把对象的创建和管理交给 Spring 容器。

通俗理解
以前我们主动去找依赖对象(比如 new UserServiceImpl()),现在 Spring 帮我们准备好放进来(通过注入)。

核心机制

  • BeanFactory / ApplicationContext 读取配置(注解或 XML)

  • 实例化对象并维护依赖关系

  • 注入方式:构造器注入 / Setter 注入 / @Autowired 注解注入

常见场景

@Service
public class OrderService {
    @Autowired
    private UserService userService; // Spring自动注入
}


✅ 二、什么是 AOP(面向切面编程)?

定义
AOP 是一种编程思想,它将通用逻辑(如日志、事务、权限)从业务逻辑中剥离出来,形成“切面”,按需动态织入目标方法执行前后。

通俗理解
不改业务代码,就能给方法加上“功能外挂”。比如,方法执行前打印日志、执行后提交事务。

核心术语

  • 切点(Pointcut):拦截哪些方法?(如所有 @Service 中的 public 方法)

  • 通知(Advice):在什么时候做什么?(如方法前、后、异常时)

  • 切面(Aspect):通知 + 切点的组合

  • 织入(Weaving):将切面逻辑加入目标对象过程,Spring 用的是 JDK 动态代理或 CGLIB

常见场景

@Aspect
@Component
public class LogAspect {
    @Before(\"execution(* com.example.service..*(..))\") // 切点表达式
    public void logBefore(JoinPoint joinPoint) {
        System.out.println(\"方法执行前记录日志\");
    }
}


✅ 总结一句话:

IoC 管对象的创建与依赖注入,AOP 管通用功能的横切抽取与动态织入,它们共同帮助 Spring 实现高内聚、低耦合的架构风格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值