黑马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执行流程
相关推荐
金玉满堂@bj7 分钟前
多环境部署方案(开发、测试、生产,搭配Tomcat\+WAR包)
java·tomcat·maven
白远山15 分钟前
无人自助健身平台搭建:从架构设计到设备联动的完整实战
java·开发语言·架构·需求分析
古法安卓24 分钟前
Android-Fork 机制详解
android·java·android studio
曹牧29 分钟前
Spring:HttpMessageConverter
java
许彰午32 分钟前
47-MetaGrid元数据表格
java·低代码·架构
wang_shu_mo_ran35 分钟前
Spring MVC的常用注解和用法(一)
java·spring·mvc
晴空蓝天43 分钟前
Spring Boot 3.5 脚手架里的 JWT + Redis 双轨会话,双端 token 隔离我是这么设计的
java·spring boot·redis
IT枫斗者枫哥1 小时前
MyBatis 列表查询优化:一页20条数据,21次SQL改成2次
java
君顾11 小时前
本地电竞服务交易系统架构设计与实战:从同城服务撮合到订单履约
java·开发语言·电竞
小刘在重生~1 小时前
十六(3)、《集合扩充》CopyOnWriteArrayList 超详细解析(线程安全集合)
java·笔记·面试·职场和发展