4.7 Inject 攔截器

2022-07-11 10:17 更新

Inject 攔截器是指在使用 enhance 或 duang 方法增強(qiáng)時(shí)使用參數(shù)傳入的攔截器。Inject 可以 對目標(biāo)完全無侵入地應(yīng)用 AOP。

假如需要增強(qiáng)的目標(biāo)在 jar 包之中,無法使用 Before 注解對其配置攔截器,此時(shí)使用 Inject攔截器可以對 jar 包中的目標(biāo)進(jìn)行增強(qiáng)。如下是 Inject 攔截器示例:

public void injectDemo() {
	// 為enhance方法傳入的攔截器稱為Inject攔截器,下面代碼中的Tx稱為Inject攔截器 OrderService service = Enhancer.enhance(OrderService.class, 		Tx.class); service.payment(…);
}

如上代碼中 Enhance.enhance()方法的第二個(gè)參數(shù) Tx.class 被稱之為 Inject 攔截器,使用此方法便可完全無侵入地對目標(biāo)進(jìn)行 AOP 增強(qiáng)。


Inject 攔截器與前面談到的 Global、Class、Method 級別攔截器是同一層次上的概念。與 Class 級攔截器一樣,Inject 攔截器將攔截被增強(qiáng)目標(biāo)中的所有方法。Inject 攔截器可以被認(rèn)為 就是 Class 級攔截器,只不過執(zhí)行次序在 Class 級攔截器之前而已。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號