二話不說直接開始上例子
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.*.*(..))")為切點這裡需要注意一下@component需要帶上,這樣spring在掃瞄的時候就會當成乙個bean掃瞄到該類,然後再判斷其是否是@aspect1)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異常拋錯後執行
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...