Jelas


Pemintas dibahagikan kepada empat peringkat dari atas ke bawah: Global, Inject, Class dan Method digunakan untuk mengosongkan pemintas di atas paras di mana ia berada.

Penyataan yang jelas akan dikosongkan untuk Global, Inject dan Class apabila ia diisytiharkan dalam lapisan Kaedah. Apabila Clear diisytiharkan pada lapisan Class, ia akan dikosongkan untuk Global dan Inject. Apabila anotasi Kosongkan membawa parameter, ia mengosongkan pemintas yang dinyatakan dalam lapisan sasaran.

Kosongkan kemahiran ingatan penggunaan:

l Terdapat empat peringkat pemintas: Global, Suntikan, Kelas dan Kaedah

l Pembersihan hanya untuk semua lapisan ke atas dari lapisan di mana Clear itu sendiri terletak, dan lapisan ini dan lapisan bawah tidak dibersihkan

l Tidak Apabila parameter diambil, semua pemintas dikosongkan Apabila parameter diambil, pemintas yang ditentukan oleh parameter dikosongkan


Dalam beberapa senario aplikasi, pemintas Global atau Kelas perlu. dikeluarkan. Sebagai contoh, sistem pengurusan latar belakang dikonfigurasikan dengan pemintas kebenaran global, tetapi tindakan log masuknya mesti dikosongkan, jika tidak, operasi log masuk tidak dapat diselesaikan Berikut ialah contoh kod:


// login方法需要移除该权限拦截器才能正常登录
@Before(AuthInterceptor.class)
public class UserController extends Controller {
	// AuthInterceptor 已被Clear清除掉,不会被其拦截
	@Clear
	public void login() {
	}
 
	// 此方法将被AuthInterceptor拦截
	public void show() {
	}
}


Kosongkan anotasi. dengan Apabila terdapat parameter, pemintas yang ditentukan boleh dikosongkan Berikut ialah contoh yang lebih komprehensif:


@Before(AAA.class)
public class UserController extends Controller {
	@Clear
	@Before(BBB.class)
	public void login() {
	// Global、Class级别的拦截器将被清除,但本方法上声明的BBB不受影响
	}
 
	@Clear({AAA.class, CCC.class})// 清除指定的拦截器AAA与CCC
	@Before(CCC.class)
	public void show() {
	// 虽然Clear注解中指定清除CCC,但她无法被清除,因为清除操作只针对于本层以上的各层
	}
}




.