Inject 攔截器
Inject 攔截器是指在使用 enhance 或 duang 方法增強時使用參數傳入的攔截器。 Inject 可以 對目標完全無侵入地應用 AOP。
假如需要增強的目標在 jar 包之中,無法使用 Before 註解對其配置攔截器,此時使用 Inject攔截器可以對 jar 包中的目標進行增強。如下是 Inject 攔截器範例:
#
public void injectDemo() { // 为enhance方法传入的拦截器称为Inject拦截器,下面代码中的Tx称为Inject拦截器 OrderService service = Enhancer.enhance(OrderService.class, Tx.class); service.payment(…); }
如上程式碼中 Enhance.enhance()方法的第二個參數Tx.class 稱為 Inject 攔截器,使用此方法便可完全無創地對目標進行 AOP 增強。
#Inject 攔截器與前面談到的Global、Class、Method 級別攔截器是同一層次上的概念。與 Class 級攔截器一樣,Inject 攔截器將攔截被增強目標中的所有方法。 Inject 攔截器可以被認為 就是 Class 級攔截器,只不過執行次序在 Class 級攔截器之前而已。