溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot 集成aop模塊

發(fā)布時間:2020-07-18 17:00:42 來源:網絡 閱讀:734 作者:lifeneedyou 欄目:編程語言

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

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

 我們做系統增強,分為前增強,后增強,環(huán)繞增強 三種基本類型,當然我看還有一些實現了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("后置通知執(zhí)行了!!!!");
   }

         @Around("execution(*        com.zkn.learnspringboot.web.controller..*.testAround*(..))")
public Object doAroundAdvice(ProceedingJoinPoint proceedingJoinPoint){
    System.out.println("環(huán)繞通知的目標方法名:"+proceedingJoinPoint.getSignature().getName());
    try {//obj之前可以寫目標方法執(zhí)行前的邏輯
        Object obj = proceedingJoinPoint.proceed();//調用執(zhí)行目標方法
        return obj;
    } catch (Throwable throwable) {
        throwable.printStackTrace();
    }
    return null;
}
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI