关于JFinal拦截器的理解

Posted 如莲家园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JFinal拦截器的理解相关的知识,希望对你有一定的参考价值。

这是波总的亲自总结,记录一下: 

1:拦截器可以用在两个层面,一个是“控制层”,另一个是“业务层”,其中“业务层”是一种狭义的说法,更加合理的说法是“非控制层”,也就是说所有“控制层”之外的情况

2:“控制层”拦截器是指用在 Controller 上的拦截器,“业务层”拦截器是指用在 "非Controller" 的其它地方的拦截器

3:无论什么拦截器都分为三种:global、class、method级

4:控制层拦截器的 global 通过 me.add(...) 添加,非控制层的 global 通过 me.addGlobalServiceInterceptor(...) 添加

5:控制层与非控制层的 class 级拦截器都是通过在紧靠 public class 的地方使用 @Before(...) 添加

6:控制层与非控制层的 method 级拦截器都是通过紧靠在方法声明的地方使用 @Before 添加

7:控制层拦截器是自动触发的,有了上述的添加,会自动触发,非控制层的拦截器需要先通过 Duang.duang(...) 或者 Enhancer.enhance(...) 以后,才能被触发


简单总结起来其实就两点:

1:两类拦截器的配置方式是类似的,唯一不同的是配置全局拦截时调用的方法名不同,一个是 me.add(...) 一个是 me.addGlobalServiceInterceptor(...)

2:控制层拦截器自动触发,而非控制层需要先增强

以上是关于关于JFinal拦截器的理解的主要内容,如果未能解决你的问题,请参考以下文章

jfinal中Interceptor的使用

JFinal教程:AOP(下)

jfinal中如何使用过滤器监控Druid监听SQL执行?

JFinal Web开发学习目录架构package设计

jfinal如何过滤对JSP/html的请求?

在jfinal中的控制层相当于struts2的action吗