黑马JAVAWeb - SpringAOP

1.什么是AOP?

  • 手动添加代码,每一个代码都要手动添加,代码非常的冗杂
  • AOP基础
  • 主要作用
  • AOP快速入门
java 复制代码
package com.itheima.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import lombok.extern.slf4j.Slf4j;

@Aspect  // 表示当前类为切面类
@Component // 表示当前类为Spring Bean
@Slf4j // 创建日志对象
public class RecordTimeAspect {

    // 切点表达式
    @Around("execution(* com.itheima.service.*.*(..))")
    public Object recordTime(ProceedingJoinPoint pjp) throws Throwable {
        long beginTime = System.currentTimeMillis();
        log.info("开始执行 {}", pjp.getSignature().getName()); // 获取目标方法名称
        
        // 执行目标方法
        Object result = pjp.proceed();
        
        long endTime = System.currentTimeMillis();
        log.info("执行耗时:{} ms", endTime - beginTime);
        return result;
    }
}
  • 通知(Advice):切面中具体要执行的代码(即横切逻辑),并指定执行时机。常见通知类型:
  1. Before:目标方法执行前执行
  2. After:目标方法执行后执行(无论是否异常)
  3. AfterReturning:目标方法正常返回后执行
  4. AfterThrowing:目标方法抛出异常后执行
  5. Around:包裹目标方法,可在执行前后自定义逻辑(最灵活)
  • AOP核心概念
  • AOP执行流程
相关推荐
我是人✓19 分钟前
Spring IOC注解全解析和Spring整合测试单元
java·后端·spring
智购科技无人售货机工厂店26 分钟前
玻璃瓶饮料破损率突然上升,排查发现是取货口缓冲垫老化了~YH
java·开发语言·人工智能·python·eclipse
镜象科技35 分钟前
中小学AI心理健康解决方案服务商怎么选?2026年选型参考
android·java·人工智能
阿狗童鞋41 分钟前
高并发系统设计实战指南
java·spring boot·spring cloud
Sam_Deep_Thinking1 小时前
CountDownLatch实现原理
java·后端·面试·程序员
小狼Solar1 小时前
SAP MDG 功能范围说明(基于S/4HANA 2025)
java·开发语言
范中勤1 小时前
Python 与 Java:模块、包、对象、反射核心差异总结
java·python·面试·反射·元类
ab1237681 小时前
Spring Integration 完整笔记 + 和 spring-integration-mqtt、Paho、EMQX 的关系
java·笔记·spring
小蜗牛狂飙记1 小时前
java环境一键配置和切换的ui工具
java
逆光的July1 小时前
可靠消息投递与消费的工程设计:Outbox、幂等、死信兜底
java