SpringBoot AOP 初步理解

2021-09-25 23:44:15 字數 1700 閱讀 7933

剛開始接觸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...