springboot AOP配置
在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); }