play framework 拦截器 @Before @After @With @Finally @Cath 等标签使用

paly框架无所谓的拦截接口,但是我们可以通过paly,@before的标签做的拦截的统一和分散,@cath 可以做到捕获异常的做一些我需要做的操作。

@Before

@Before标注的方法会在该类的以及该类的子类所有方法执行前执行

public class BaseController extends Controller {

@Before()
public static void AllbeforeRun(){

}
//@Before 有两个常见的参数配置 only  unless  意思也就是他的字面意思。
@Before{only="login"}
public static  voide  onlyLoginRun(){

}
@Before{only={"login""reg"}}
public static  voide  onlyLoginRunAndRegRun(){

}
@Before{unless="loginout"}
public static  voide  unlessLoginoutRun(){

}
@Before{unless={"loginout""regout"}}
public static  voide  unlessLoginoutRunAndRegoutRun(){

}
}

@with

@with 一般用法你想使用这个类的拦截器但是又不想继承这个类 我们可以可以用到@with这个注解了


@With(BaseController.class)
//这里也可以多个 逗号隔开就好
public class WithController extends Controller {


}

@After

@After是在该类和该类的子类执行之后执行的具体用户和参数 和前面的@Before基本一致

@Finally

@Finally和java中的finally一样,不管有该类的方法有木有没有执行成功都会进入该方法

@Cach

@Cach 该类的程序抛出异常时候可以被标注了@Catch的方法抓住,我们可以在里面做一些必要的操作,比如记录相关错误日志,异常跳转等

你可能感兴趣的:(palyframew)