在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); }