aop(aspect oriented programming):面向切面程式設計
原生介面實現方式
//前置日誌
public
class
logimplements
methodbeforeadvice
}
public
class
afterlog
implements
afterreturningadvice
}
<
aop:config
>
<
aop:pointcutid=
"pointcut"
expression
="execution(* com.liye.service.userserviceimpl.*(..))"
>
aop:pointcut
>
<
aop:advisor
advice-ref
="log"
pointcut-ref
="pointcut"
/>
<
aop:advisor
advice-ref
="afterlog"
pointcut-ref
="pointcut"
/>
aop:config
>
使用自定義類public
class
diypointcut
public
void
after()
}
"diy"
class
="com.liye.diy.diypointcut"
/>
<
aop:config
>
<
aop:aspect
ref=
"diy"
>
<
aop:pointcutid=
"point"
expression
="execution(* com.liye.services.userserviceimpl.*(..))"
/>
<
aop:before
method
="before"
pointcut-ref
="point"
/>
<
aop:after
method
="after"
pointcut-ref
="point"
/>
aop:aspect
>
aop:config
>
使用註解開發
開啟註解支援:
<
aop:aspectj-autoproxy
/>
<
aop:aspectj-autoproxy
proxy-target-class
="false"
/>
<
aop:aspectj-autoproxy
proxy-target-class
="true"
/>
**@aspect:**標註在類上,標識它是乙個切面**@before:**在切面類的方法上,內部引數為切點,表示切點前置增加
@after:在切面類的方法上,內部引數為切點,表示切點後置增加
**@around:**環繞增強
@aspect
public
class
annotationpointcut
@after
("execution(* com.liye.services.userserviceimpl.*(..))"
)public
void
after()
@around
("execution(* com.liye.services.userserviceimpl.*(..))"
)public
void
around
(proceedingjoinpoint jp)
throws throwable
}<
--執行順序:
環繞前==
====
===方法執行前==
*****==
執行方法
環繞後==
====
===方法執行後==
*****==
-->
VMware ESXi Vlan的三種實現方式
在vmware esx esxi網路中vlan實現方式可以分成3種,分別是通過物理交換機,虛擬交換機 vswitch 和esxi中的虛擬機器 vm 來新增vlan標記,具體方式如下 1 est external switch tagging 通過將交換機的埠劃分到不同的vlan實現虛擬機器的vlan...
執行緒的三種建立方
一,繼承thread 重寫run class programmer extends thread public static void main string args 二,繼承runnable 實現run class programmer implements runnable public st...
Python selenium的三種等待方式
time.sleep 3 這種方式簡單粗暴,必須等xx時間,不管你瀏覽器是否載入完了,程式都得等3秒,然後繼續執行下面的 太死板,嚴重影響程式的執行速度。可以作為除錯用,有時 裡面也這樣用。implicitly wait xx 設定乙個最長等待時間,如果在規定時間內網頁載入完成,則執行下一步,否則一...