From bdbdfd03aba744cdd893abb5cf2505ea851077b1 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 28 Oct 2025 11:33:54 +0800 Subject: [PATCH] =?UTF-8?q?tlias=E7=AE=A1=E7=90=86=E7=B3=BB=E7=BB=9F-sprin?= =?UTF-8?q?gAOP=E7=9A=84=E9=80=9A=E7=9F=A5=E7=B1=BB=E5=9E=8B=E4=BB=8B?= =?UTF-8?q?=E7=BB=8D&=E5=88=87=E5=85=A5=E7=82=B9=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=E7=9A=84=E5=85=B1=E7=94=A8=E6=8A=BD=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/inmind/aop/MyAspect1.java | 50 +++++++++++++++++++ .../main/java/com/inmind/aop/TimeAspect.java | 3 +- .../inmind/service/impl/DeptServiceImpl.java | 5 +- 3 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 springboot-aop-quickstart/src/main/java/com/inmind/aop/MyAspect1.java diff --git a/springboot-aop-quickstart/src/main/java/com/inmind/aop/MyAspect1.java b/springboot-aop-quickstart/src/main/java/com/inmind/aop/MyAspect1.java new file mode 100644 index 0000000..79881ed --- /dev/null +++ b/springboot-aop-quickstart/src/main/java/com/inmind/aop/MyAspect1.java @@ -0,0 +1,50 @@ +package com.inmind.aop; + +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.*; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +@Aspect //切面类 +public class MyAspect1 { + + //定义了一个可以通用的切入点表达式 + @Pointcut("execution(* com.inmind.service.impl.DeptServiceImpl.*(..))") + public void pt(){}; + + +// @Before("execution(* com.inmind.service.impl.DeptServiceImpl.*(..))") + @Before("pt()") + public void before(){ + log.info("before ..."); + } + +// @Around("execution(* com.inmind.service.impl.DeptServiceImpl.*(..))") + @Around("pt()") + public Object around(ProceedingJoinPoint joinPoint) throws Throwable { + log.info("around before ..."); + + //调用目标对象的原始方法执行 + Object result = joinPoint.proceed(); + + log.info("around after ..."); + return result;//环绕通知一定要返回原始方法的执行结果!!!! + } + + @After("pt()") + public void after(){ + log.info("after ..."); + } + + @AfterReturning("pt()") + public void afterReturning(){ + log.info("afterReturning ..."); + } + + @AfterThrowing("pt()") + public void afterThrowing(){ + log.info("afterThrowing ..."); + } +} diff --git a/springboot-aop-quickstart/src/main/java/com/inmind/aop/TimeAspect.java b/springboot-aop-quickstart/src/main/java/com/inmind/aop/TimeAspect.java index 2bc0cdb..c70349d 100644 --- a/springboot-aop-quickstart/src/main/java/com/inmind/aop/TimeAspect.java +++ b/springboot-aop-quickstart/src/main/java/com/inmind/aop/TimeAspect.java @@ -11,7 +11,8 @@ import org.springframework.stereotype.Component; @Slf4j public class TimeAspect { - @Around("execution(* com.inmind.service.*.*(..))")//表示AOP作用于com.inmind.service下的所有的类中所有的方法,参数是0或多个 +// @Around("execution(* com.inmind.service.*.*(..))")//表示AOP作用于com.inmind.service下的所有的类中所有的方法,参数是0或多个 + @Around("com.inmind.aop.MyAspect1.pt()") public Object recordTime(ProceedingJoinPoint joinPoint) throws Throwable { //1.记录开始时间 long begin = System.currentTimeMillis(); diff --git a/springboot-aop-quickstart/src/main/java/com/inmind/service/impl/DeptServiceImpl.java b/springboot-aop-quickstart/src/main/java/com/inmind/service/impl/DeptServiceImpl.java index acaa1cc..b1a6eae 100644 --- a/springboot-aop-quickstart/src/main/java/com/inmind/service/impl/DeptServiceImpl.java +++ b/springboot-aop-quickstart/src/main/java/com/inmind/service/impl/DeptServiceImpl.java @@ -1,6 +1,5 @@ package com.inmind.service.impl; -import com.inmind.aop.MyLog; import com.inmind.mapper.DeptMapper; import com.inmind.pojo.Dept; import com.inmind.service.DeptService; @@ -19,14 +18,12 @@ public class DeptServiceImpl implements DeptService { private DeptMapper deptMapper; @Override - @MyLog public List list() { List deptList = deptMapper.list(); return deptList; } @Override - @MyLog public void delete(Integer id) { //1. 删除部门 deptMapper.delete(id); @@ -41,7 +38,7 @@ public class DeptServiceImpl implements DeptService { @Override public Dept getById(Integer id) { -// int i = 1/0; + int i = 1/0; return deptMapper.getById(id); }