springboot 集成aop模塊

aop 是spring的核心之一,在springboot之前,使用AOP已經相對比較多了,主要在開發中用於實現日誌記錄,安全校驗,權限等功能。

 在springboot把Spring的核心功能都簡化使用之後,aop的配置並沒有太大的變化,基本還是原來的使用。

 我們做系統增強,分爲前增強,後增強,環繞增強 三種基本類型,當然我看還有一些實現了return 增強之類的,本質上都一樣的。

 Springboot通過@Aspect註解來實現aop 的功能。我們在使用的時候,需要在類上面聲明好這個註解。

 同時,也要定義切點,切面這些功能。

 比如 ,通過@Pointcut來定義切點
     @Pointcut("execution(public * com.example.demo.controller.*.*(..))")
   public void webLog(){

    }

     指定com.example.demo.controller包下面的所有方法都要被增強。

          @Before("webLog()")
    public void doBeforeAdvice(JoinPoint joinPoint){
    System.out.println("我是前置通知!!!");
    //獲取目標方法的參數信息
    Object[] obj = joinPoint.getArgs();
    //AOP代理類的信息
            }

            @After("webLog()")
   public void doAfterAdvice(JoinPoint joinPoint){

    System.out.println("後置通知執行了!!!!");
   }

         @Around("execution(*        com.zkn.learnspringboot.web.controller..*.testAround*(..))")
public Object doAroundAdvice(ProceedingJoinPoint proceedingJoinPoint){
    System.out.println("環繞通知的目標方法名:"+proceedingJoinPoint.getSignature().getName());
    try {//obj之前可以寫目標方法執行前的邏輯
        Object obj = proceedingJoinPoint.proceed();//調用執行目標方法
        return obj;
    } catch (Throwable throwable) {
        throwable.printStackTrace();
    }
    return null;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章