spring Aop(1) 註解使用

2021-10-23 03:10:15 字數 1704 閱讀 4778

二話不說直接開始上例子

org.springframework.boot

spring-boot-starter-aop

1.定義usera類,也就是業務類

2.建立aspect

@aspect

@component

public class useraspects

@before("useraspects()")

public void before(joinpoint joinpoint)

/* @around("useraspects()")

public object around(proceedingjoinpoint pjp) throws throwable catch (throwable throwable)

system.out.println("*****aroundafter:"+pjp.getsignature().getname());

return pjp.proceed();

}*/@after("useraspects()")

public void after(joinpoint joinpoint)

@afterreturning("useraspects()")

public void afterreturning(joinpoint joinpoint)

}

@pointcut("execution(* com.example.demo.service.*.*(..))")為切點

1)execution(* *(..))  

//表示匹配所有方法  

2)execution(public * com. example.service.userservice.*(..))  

//表示匹配com.example.server.userservice中所有的公有方法  

3)execution(* com.example.server..*.*(..))  

//表示匹配com.example.server包及其子包下的所有方法

@before呼叫方法前執行

@after代用方法後執行

@afterreturning方法return後執行

@around包含before和after

@afterthrowing異常拋錯後執行

這裡需要注意一下@component需要帶上,這樣spring在掃瞄的時候就會當成乙個bean掃瞄到該類,然後再判斷其是否是@aspect

3.執行業務

public static void main(string args) }

4.執行結果

注意:springboot專案是不需要加@enableaspectjautoproxy該註解的,因為自動裝配過程中預設情況下就已經加上了該註解了,當然你加上也不影響

ok簡單的乙個aop切面我們就已經完成了,那spring是怎麼實現aop的呢?下一章我們就這個問題進行討

springAOP 註解方式

package com.zf.aspect import org.aspectj.lang.joinpoint import org.aspectj.lang.proceedingjoinpoint import org.aspectj.lang.annotation.afterreturning ...

SpringAop註解實現

該簡單例子實現方法的前置增強列印日誌,簡單的來說就是在呼叫某個方法之前會呼叫另乙個方法 普通類 calculator component public class calculator public int sub int i,int j public int mul int i,int j pub...

SpringAOP常用註解

springmvc學習記錄文章目錄 1 程式的耦合和解耦思路 2 使用springioc解決程式耦合的前期準備 4 bean標籤及其例項化的3種方式 5 bean的作用範圍和生命週期 6 spring的依賴注入 7 基於註解的ioc環境搭建 8 基於註解的ioc 常用註解 spring2.5規範 9...