전에


Before 어노테이션은 인터셉터를 구성하는 데 사용됩니다. 이 어노테이션은 클래스 및 메소드 레벨에서 인터셉터를 구성할 수 있습니다. 다음은 코드 예입니다.


1475634939249992.png

위 코드에서 볼 수 있듯이 Before는 클래스 레벨로 인터셉터를 구성할 수 있습니다. 및 메서드 수준에서 전자는 이 클래스의 모든 메서드를 가로채고 후자는 이 메서드만 가로채게 됩니다. 또한 Before에서는 여러 개의 인터셉터를 동시에 구성할 수 있으므로 중괄호 안에 사용하고 여러 개의 인터셉터를 쉼표로 구분하면 됩니다.

클래스 및 메소드 레벨 인터셉터 외에도 JFinal은 글로벌 인터셉터 및 Inject 인터셉터도 지원합니다(Inject

인터셉터는 나중에 소개될 예정입니다). 글로벌 인터셉터는 제어 계층 글로벌 인터셉터와 비즈니스 계층 글로벌 인터셉터로 구분됩니다. 전자는 모두 인터셉터합니다. 컨트롤 계층의 작업 메서드, 후자는 비즈니스 계층의 모든 메서드를 가로챕니다.

전역 인터셉터는 YourJFinalConfig에서 구성되어야 합니다. 다음은 구성 예입니다.


public class AppConfig extends JFinalConfig {
	public void configInterceptor(Interceptors me) {
	// 添加控制层全局拦截器
	me.addGlobalActionInterceptor(new GlobalActionInterceptor());
 
	// 添加业务层全局拦截器
	me.addGlobalServiceInterceptor(new GlobalServiceInterceptor());
 
	// 为兼容老版本保留的方法,功能与addGlobalActionInterceptor完全一样
	me.add(new GlobalActionInterceptor());
	}
}


메서드가 여러 레벨의 인터셉터에 의해 인터셉트되는 경우 인터셉터의 각 레벨 실행 순서는 다음과 같습니다. Global, Inject, Class, Method, 동일한 레벨에 여러 개의 인터셉터가 있는 경우 동일한 레벨의 실행 순서는 앞에 구성된 인터셉터가 먼저 실행됩니다.