在Springboot中添加AOP配置分两步:
最近学习AOP ,记录一下,虽然很多名字不太清楚,但是问题不大
1:在pom.xml中添加AOP依赖
2:建一个AOP配置类
下面来看下代码是怎么实现的:
1:在pom.xml中添加AOP依赖
<!--引入AOP依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2:建一个AOP配置类,我的类名是 MyAspect
package com.yyy.config; import org.aspectj.lang.annotation.*; import org.springframework.stereotype.Component; /** * @auther YueYangyang * @date 2020/7/4 15:41 */ @Aspect @Component public class MyAspect { @Pointcut("execution(* com.yyy.service.*.*(..))") public void Aspect(){ System.out.println("这是切面aop"); } @Before("Aspect()") public void beforeAspect(){ System.out.println("这是切面aop 前置方法"); } @After("Aspect()") public void afterAspect(){ System.out.println("这是切面aop 后置方法"); } @AfterReturning("Aspect()") public void afterReturningAspect(){ System.out.println("这是切面aop 后置方法 回调方法"); } @AfterThrowing("Aspect()") public void afterThrowingAspect(){ System.out.println("这是切面aop 异常处理方法"); } }
其中 @Pointcut("execution(* com.yyy.service.*.*(..))") 是什么意思呢?它表示调用 com.yyy.service 路径下的所有方法 都会执行下 Aspect 方法,
@Before("Aspect()") Before注解的意思是在 Aspect() 方法执行前执行
@After("Aspect()") Before注解的意思是在 Aspect() 方法执行后执行等等。记提看代码上面 有写
为了方便理解 ,我把com.yyy.service 下面的代码贴出来
package com.yyy.service; import com.yyy.pojo.User; import org.springframework.stereotype.Service; @Service public interface UserService { User queryById(User user); }