剛開始接觸spring的時候不可避免的會提到aop,網上一查,給你一句話就叫切面程式設計,個人在這裡提出下我自己的一些理解以及乙個例子
記得小時候在夏天的時候,有一次說風來吧風就來了,雨來吧雨就來了,而不需要我們去拿乙個吹風機製造風,或者製造雨。那麼aop就如同我們小時候想像的咒語一樣,說來就來,只需要結果不需要我去創造。
那麼程式中的aop也一樣,比如aop思想常用的事物、許可權檢查、日誌等地方,但是aop只能作為乙個輔助並不能**oop(物件導向程式設計),說白了aop也是基於oop來實現的,
aop中相關概念
advice的型別
spring aop demo
1.建立advice類實現切割點以及advice中的各個型別方法
@aspect
@order(-99) // 控制多個aspect的執行順序,越小越先執行
@component
public class checkuser
@pointcut("execution(* com.yafei.demo.*.add*(..))")
public void checkadd()
@before("checkuser()")
public void beforecheck()
@after("checkuser()")
public void aftercheck()
@before("checkadd()")
public void beforeadd()
@after("checkadd()")
public void afteradd()
//宣告環繞通知
@around("checkuser()")
public object doaround(proceedingjoinpoint pjp) throws throwable
其中@pointcut註解中用execution正則定義了哪些類或者方法是需要進行切入的。
2.建立user實現類進行測試
@service
public class iuserimpl implements user ;
map tmp = new hashmap();
for (int i = 0; i < list.length; i++)
map = tmp;
} public void adduser(string username)
public void findall()
public string finduser(string username)
system.out.println("-----------------【finduser】-----------------");
system.out.println("-----------------username:" + username + "-----------------");
system.out.println("-----------------【result】:" + password + "------------------");
return password;
}
SpringBoot AOP程式設計
aop org.springframework.boot groupid spring boot starter aop artifactid dependency spring 的aop預設是使用jdk spring aop預設是使用jdk動態 即基於介面的 可以通過proxy target cl...
springboot aop事務簡介
開啟 在springboot啟動類上加註解 enabletransactionmanagement 使用 在方法或者類上加註解 transactional transactional 當這個註解使用在類上意味著這個類中的所有方法都受事務控制,該註解在類上使用定義類中方法共同特性,如有特殊在方法上註解...
springboot aop使用方式
定義切面類 切面類進行增強的兩種寫法 切點匹配註解和規則 引入相應的aop包 org.springframework.bootgroupid spring boot starter aopartifactid dependency 定義切面類 類名自定義 import org.aspectj.lan...